Cascadingdropdownlist e ritorno valori selezionati al controller

sabato 12 febbraio 2011 - 17.44
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows XP  |  Visual Studio 2010

frn Profilo | Newbie

Sto provando, utilizzando il componente della AjaxControlToolkit cascadingdropdownlist a caricare in runtime i vari combo per selezionare regione, provincia e comune.

Seguendo vari esempi su internet usando il pattern MVC ho creato il controller per il create di un annuncio e il view dei tutto quello che mi occorre. Quello che non riesco a fare è passare i valori selezionati dai dropdownlist al controller per salvare il tutto sul DB.

Vi allego parte dei sorgenti. Chi mi aiuta è un grande. Sono giorni che provo, cerco e riprovo, ma nulla.

il controller passa al view un model del tip n_advice

var viewModel = new AdviceCreateViewModel
{
n_advice = new NewAnnuncio(),
};
return View(viewModel);

nel view ho tutta la logica per riempire i combo a runtime.



<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="True" Inherits="System.Web.Mvc.ViewPage<FTC.ViewModels.AdviceCreateViewModel>" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<script runat="server" >

void Select_Zona(Object sender, EventArgs e)
{

Model.n_advice.idzona = ddlZone.SelectedValue;
}

</script>


<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Create</h2>
<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<fieldset>

<legend>Fields<asp:ScriptManager ID="ScriptManager1" runat="server" />
</legend>
Zona:
<asp:DropDownList ID="ddlZone" runat="server" OnSelectedIndexChanged="Select_Zona">
</asp:DropDownList>
Regione:
<asp:DropDownList ID="ddlRegioni" runat="server" OnSelectedIndexChanged="Select_Regione" >
</asp:DropDownList>
...


<ajaxToolkit:CascadingDropDown ID="CascadingDropDownZone" runat="server" TargetControlID="ddlZone"
Category="Zona" PromptText="seleziona Zona" ServicePath="..\..\WSWhere.asmx"
ServiceMethod="GetZone" />
<ajaxToolkit:CascadingDropDown ID="CascadingDropDownRegione" runat="server" TargetControlID="ddlRegioni"
ParentControlID="ddlZone" Category="Regione" PromptText="seleziona Regione" ServicePath="..\..\WSWhere.asmx"
ServiceMethod="GetRegione" />
...


<p>
<input type="submit" value="Create" />
</p>
</fieldset>
</form>
</asp:Content>

Nella definizione del DropDownList ID="ddlZone" ho definito una funzione (Select_Zona) che dovrebbe passare il valore selezionato al controller (questa me la sono pensata e scritta. In realtà non ho trovato quasi nulla che mi indicasse questa via).
Proprio questo è il problema: al controller non arriva nulla di ciò che ho selezionato. Il valore restituito dal parametro Model.n_advice.idzona è sempre null.

Qualcuno sa dirmi qualcosa? dove è che sbaglio. Quanto meno, sapreste indirizzarvi verso un esempio che ritorna i valori selezionati al controller?
Ce ne sono tanti, ma pare che tutti si fermino alla selezione dei valori.

Grazie
Francesco
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5