2016-08-11 2 views
0

Als Hintergrund, ich codiere in C# mit MVC. Ich habe eine Teilansicht (CategorySelection), die einfach eine Liste aller Kategorien anzeigt, die sie über ihr Modell erhält.So erhalten Sie Zugriff auf die Informationen eines asp.net-Steuerelements von einer übergeordneten Ansicht/Controller

@using MyProject.Models; 
@model CategorySelectionModel 

@using (Html.BeginForm()) 
{ 
    <select id="CategoryNamesList" size="6"> 

     @if(Model.Categories.Count() == 0) 
     { 
      <option>No Categories defined.</option> 
      <option>Please define a category first.</option> 
     } 
     else 
     { 
      foreach (Category c in Model.Categories) 
      { 
       if (c.Id == Model.SelectedCategoryId) 
       { 
        <option selected="selected">@c.Name</option> 
       } 
       else 
       { 
        <option>@c.Name</option> 
       } 
      } 
     } 
    </select> 
} 

Ich bin dann in einer übergeordneten Ansicht dieses Teilansicht einschließlich der EditItems genannt wird (jedes Element eine Kategorie hat, die angezeigt wird,/durch Teilansicht ausgewählt)

<div class="form-group"> 
       <div>@Html.LabelFor(mode => Model.Category)</div> 
       @Html.Partial("CategorySelection", new CategorySelectionModel { Categories = new dbContext().Categories, SelectedCategoryId = Model.Category.Id }) 
</div> 

So weit so gut. Der Code wählt die richtige Kategorie aus der Liste innerhalb der Teilansicht aus. Das Problem ist jedoch, dass ich nicht weiß, wie man den neuen Wert der CategoryId (das Element von CategoryNamesList, auf das geklickt wurde) aus der Teilansicht erhält, wenn der Benutzer auf eine neue Kategorie klickt (wie der Name in der EditItem-Ansicht andeutet) möchte wissen, welche Kategorie der Benutzer ausgewählt hat, um die Kategorien entsprechend zu aktualisieren). Jede Hilfe wird im Voraus geschätzt.

+0

Wann & wo wollen Sie das neu ausgewählte Element aus der Dropdown-Liste zu bekommen? – Shyju

+0

Meinst du den Wert erhalten, wenn Sie das Formular absenden? (Ihr '