在MVC剃须刀回传后,maintaning下降选定状态?

Tou*_*ubi 6 .net c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

在MVC 4 Web中,我有下面的示例代码下拉列表:

@(Html.DropDownList("Condition2", new SelectList(Model.Makes, "CCultureId", "CTitle"), "All",new {@class="span3"}))
Run Code Online (Sandbox Code Playgroud)

我选择全部作为第一个选项,按下按钮,页面显示数据.回帖后,下拉按钮按下按钮重置,你能指导我如何在页面回发后保持其状态下拉(我明白在MVC4中没有回发,我认为它是一次往返服务器的回程).

jzm*_*jzm 7

一种方法是在控制器中返回模型中提交的值.这意味着您的下拉列表应该连接到您的viewmodel.

视图模型:

public class MyViewModel
{
    // more properties...
    public string Make {get;set;}
    // more properties
}
Run Code Online (Sandbox Code Playgroud)

控制器:

[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
    // do postback stuff
    return View(model); // model.Make is set to whatever was submitted and will be returned   
}
Run Code Online (Sandbox Code Playgroud)

HTML:

@model Models.MyViewModel

@(Html.DropDownListFor(m => m.Make, 
     new SelectList(Model.Makes, "CCultureId", "CTitle", Model.Make), 
     "All", new {@class="span3"}))
Run Code Online (Sandbox Code Playgroud)