如何捕获@ Html.DropDownListFor选定值?

时间:2015-09-28 16:38:30

标签: c# razor enums entity-framework-6 asp.net-mvc-5.2

我正在使用MVC5,Razor,实体框架,C#。我试图使用链接传递一个dorpdown列表的值。

我的模特是

public class TestVM
{
    public string TheID { get; set; }
}

我正在将一个枚举加载到IEnumberable中。我的枚举是

public enum  DiscountENUM
 {
     SaleCustomer,
     SaleCustomerCategory,
     SaleProduct,
     SaleProductCategory,
     SaleCustomerAndProduct,
     SaleCustomerAndProductCategory,
     SaleCustomerCategoryAndProductCategory,
     PurchaseVendor,
     PurchaseVendorAndProduct,
     PurchaseVendorAndProductCategory,
     PurchaseProduct,
     PurchaseProductCategory,
     Unknown
 }

我正在使用家庭控制器的索引方法

public ActionResult Index()
{
    ViewBag.ListOfDiscounts = SelectListDiscountENUM();
    TestVM d = new TestVM();
    return View(d);
}

我使用

加载ListOfDiscounts
private IEnumerable<SelectListItem> SelectListDiscountENUM()
{
    List<SelectListItem> selectList = new List<SelectListItem>();
    var listOfEnumValues = Enum.GetValues(typeof(DiscountENUM));
    if (listOfEnumValues != null)
        if (listOfEnumValues.Length > 0)
        {
            foreach (var item in listOfEnumValues)
            {
                SelectListItem sVM = new SelectListItem();
                sVM.Value = item.ToString();
                sVM.Text = Enum.GetName(typeof(DiscountENUM), item).ToString();
                selectList.Add(sVM);
            }

        }
     return selectList.OrderBy(x => x.Text).AsEnumerable();

}

我从视图中调用的create方法是

public ActionResult Create(TestVM d, string TheID)
{
    return View();
}

我的索引视图是

@model ModelsClassLibrary.Models.DiscountNS.TestVM


<div>@Html.ActionLink("Create New", "Create", new { TheID = Model.TheID})</div>
<div>
    @Html.DropDownListFor(x => x.TheID, @ViewBag.ListOfDiscounts as IEnumerable<SelectListItem>, "--- Select Discount Type ---", new { @class = "form-control" })
</div>

问题出在视图中的以下行

<div>@Html.ActionLink("Create New", "Create", **new { TheID = Model.TheID}**)</div>

我尝试添加一个名为field的模型作为“TheID”......没有运气。另外,在参数中添加了一个字符串字段,没有运气。我查看了FormControl对象,其中也没有任何内容!我怀疑必须在帮助程序的路由级添加一些东西,但我不知道是什么。

“Model.TheID”始终为null。即使我在DropDownListFor中选择一个项目。 有没有人知道如何捕获DropDownListFor的选择值并将其发送到Html.ActionLink“TheID”?

0 个答案:

没有答案