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

时间:2013-11-25 00:54:13

标签: c# .net 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"}))

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

3 个答案:

答案 0 :(得分:7)

执行此操作的一种方法是在控制器中返回模型中提交的值。这意味着您的下拉列表应该与您的viewmodel连接。

视图模型:

public class MyViewModel
{
    // more properties...
    public string Make {get;set;}
    // more properties
}

控制器:

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

HTML:

@model Models.MyViewModel

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

答案 1 :(得分:0)

您可以使用Viewbag保存所选项目,请参阅blew:

获取行动

[HttpGet]
    public ActionResult YourAction()
    {

        ViewBag.SelectedItem = "";
         ///
        return View(new yourViewModel);
    }

发布操作

[HttpPost]
public ActionResult YourAction(FormCollection form,YourViewModel model)
{
    ViewBag.SelectedItem = form["Condition2"];
     ///
    return View(model);
}

查看

@(Html.DropDownList("Condition2", new SelectList(Model.Makes, "CCultureId",
 "CTitle",ViewBag.SelectedItem), "All",new {@class="span3"}))

答案 2 :(得分:0)

你可以用吗?运算符,它的工作方式与此类似,并使用selectlistitem的Selected属性

Console.WriteLine((2 == 2 ? "true" : "false"));

然后例如

private Entities en = new Entities(); 

        public ActionResult Index(string selectedvalue)
                {

    List<SelectListItem> selectlist = 

    en.tblUser.Select(x => new SelectListItem { Text = x.Name, Value = x.Id, 

    Selected = ( x.Name == selectedvalue ? false : true) })

    .ToList();

                    ViewBag.DropDown = selectlist;
                    return View();
                }

然后在视图中你简单地把这个

@Html.DropDownList("DropDownName", (List<SelectListItem>)ViewBag.DropDown))

显然不建议使用viewbag,而是使用带有list属性的模型。