【问题标题】:Pass SelectedValue of DropDownList in Html.BeginForm() in ASP.NEt MVC 3在 ASP.NEt MVC 3 中的 Html.BeginForm() 中传递 DropDownList 的 SelectedValue
【发布时间】:2012-04-17 08:09:00
【问题描述】:

这是我的查看代码:

@using(Html.BeginForm(new { SelectedId = /*SelectedValue of DropDown*/ })) {

 <fieldset>

     <dl>
       <dt>
           @Html.Label(Model.Category)
       </dt>
       <dd>
        @Html.DropDownListFor(model => Model.Category, CategoryList)
       </dd>
    </dl>

 </fieldset>
 <input type="submit" value="Search" />


}

如代码所示,我需要将dropdown 选择的值传递给BeginForm() Html 助手中的操作。你有什么建议?

【问题讨论】:

  • 渲染时如何知道选定的值?
  • @Tutan 这是我的问题,如果有任何答案

标签: asp.net-mvc asp.net-mvc-3 razor html-helper html.beginform


【解决方案1】:

提交表单时将传递所选值,因为下拉列表由&lt;select&gt; 元素表示。您只需要调整您的视图模型,使其具有一个名为 SelectedId 的属性,例如您将绑定下拉列表:

@using(Html.BeginForm() )
{
    <fieldset>
        <dl>
            <dt>
                @Html.LabelFor(x => x.SelectedId)
            </dt>
           <dd>
                @Html.DropDownListFor(x => x.SelectedId, Model.CategoryList)
           </dd>
        </dl>
    </fieldset>

    <input type="submit" value="Search" />
}

这假定以下视图模型:

public class MyViewModel
{
    [DisplayName("Select a category")]
    public int SelectedId { get; set; }

    public IEnumerable<SelectListItem> CategoryList { get; set; }
}

这将由您的控制器处理:

public ActionResult Index()
{
    var model = new MyViewModel();
    // TODO: this list probably comes from a repository or something
    model.CategoryList = new[]
    {
        new SelectListItem { Value = "1", Text = "category 1" },
        new SelectListItem { Value = "2", Text = "category 2" },
        new SelectListItem { Value = "3", Text = "category 3" },
    };
    return View(model);
}

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    // here you will get the selected category id in model.SelectedId
    return Content("Thanks for selecting category id: " + model.SelectedId);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多