html帮助方法的问题

时间:2011-03-03 15:33:55

标签: asp.net-mvc html-helper

我无法弄清楚如何将参数从下拉列表发送到我的模型。有人可以告诉我一个如何做到这一点的例子吗?

2 个答案:

答案 0 :(得分:2)

与往常一样,您首先要定义一个模型:

public class MyViewModel
{
    public string SelectedValue { get; set; }

    public SelectList Items 
    {
        get
        {
            return new SelectList(new[]
            {
                new SelectListItem { Value = "1", Text = "item 1" },
                new SelectListItem { Value = "2", Text = "item 2" },
                new SelectListItem { Value = "3", Text = "item 3" },
            }, "Value", "Text");
        }
    }
}

控制器:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel();
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        // You will get the selected value inside model.SelectedValue here
        // => do something with it
        ....
    }
}

强类型视图:

<% using (Html.BeginForm()) { %>
    <%= Html.DropDownListFor(x => x.SelectedValue, Model.Items) %> 
    <input type="submit" value="OK" />
<% } %>

答案 1 :(得分:0)

public ActionResult Edit(int id)
        {
            Affiliate affiliate = affiliateRepository.GetAffiliate(id);
            List<SelectListItem> StateList = new List<SelectListItem>();
            SelectListItem item;

            Dictionary<string, string> dictState = S127Global.Misc.getStates();


            foreach (KeyValuePair<string, string> k in dictState)
            {
                item = new SelectListItem();
                item.Text = k.Value;
                item.Value = k.Key;
                StateList.Add(item);
            }
            item = new SelectListItem();
            item.Text = " - Select State - ";
            item.Value = "";
            StateList.Insert(0, item);


            //create new select list with affiliate.state as the selected value in ViewData
            ViewData["State"] = new SelectList(StateList.AsEnumerable(), "Value", "Text",affiliate.State);
            return View(affiliate);
        }

视图代码

<div class="editor-label">
    <%: Html.LabelFor(model => model.State) %>
</div>
<div class="editor-field">
    <%: Html.DropDownList("State")%>
    <%: Html.ValidationMessageFor(model => model.State) %>
</div>