您能帮我如何将选定选项的参数发送到控制器吗?这是我的看法:
<select>
@foreach(var item in Model.City)
{
<option>@Html.DisplayFor(x => item.Name)</option>
}
</select>
您能帮我如何将选定选项的参数发送到控制器吗?这是我的看法:
<select>
@foreach(var item in Model.City)
{
<option>@Html.DisplayFor(x => item.Name)</option>
}
</select>
所以,在你看来,你会有类似的东西:
@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" />
}
在您的控制器中,您所要做的就是执行一个名称相同但签名不同的操作:
任何一个:
[HttpPost]
public ActionResult Edit(string City) { ... }
或者你可以通过整个模型
[HttpPost]
public ActionResult Edit(MyModel model) {
string city = model.City;
}
但是有这样的问题,我建议你花一些时间学习 PluralSight 的免费 ASP.NET 课程,你可以在 ASP.NET 官方网站上找到:
免费提供的课程:
课程在每个页面的右侧边栏中
来自斯科特·汉塞尔曼:
看起来您缺少表单 html 助手。试试这个(如果您需要指定不同的 ActionResult,它假定您将转到 BeginForm 助手上阅读的 Controller/Index 操作):
@using (Html.BeginForm())
<select>
@foreach(var item in Model.City)
{
<option>@Html.DisplayFor(x => item.Name)</option>
}
</select>
<br />
<input type="submit" value="Search" />
}
与其遍历 Model.City,不如查看另一个 Html 助手,例如 Html.DropDownList。