如何将所选选项的参数发送到MVC中的控制器?

Teo*_*ris 2 asp.net-mvc-3

你能帮我看看如何将所选选项的参数发送给控制器吗?这是我的观点:

<select>
   @foreach(var item in Model.City)
   {      
      <option>@Html.DisplayFor(x => item.Name)</option>

   }
</select>
Run Code Online (Sandbox Code Playgroud)

bal*_*dre 11

所以,在你看来你会有类似的东西:

@model MyModel

@using(Html.BeginForm()) {

  <select id="City" name="City">
    @foreach(var c in Model.City)
    {
      <option value="@c.Id">@c.Name</option>
    }
  </select>

  <input type="submit" value="Post data to controller" />

}
Run Code Online (Sandbox Code Playgroud)

在您的控制器中,您所要做的就是使用相同名称的操作,但使用不同的签名:

之一:

[HttpPost]
public ActionResult Edit(string City) { ... }
Run Code Online (Sandbox Code Playgroud)

或者你可以通过整个模型

[HttpPost]
public ActionResult Edit(MyModel model) { 
  string city = model.City;
}
Run Code Online (Sandbox Code Playgroud)

但是有了这样的问题,我建议你花点时间使用PluralSight中的免费ASP.NET课程,你可以在ASP.NET oficial网站上找到它:

免费课程:

课程位于每页的右侧边栏

来自Scott Hanselman: