在MVC ASP应用程序中的DropDownListFor

时间:2017-07-04 08:22:52

标签: asp.net-mvc-5 html-helper dropdownlistfor

我有一个你在下面看到的视图模型

    public ActionResult AddNewCategory()
    {
        AssetCategoryViewModel acvm = new AssetCategoryViewModel();

        return View(acvm);
    }

我想发送SelectlistItem来查看使用下拉列表。

行动方法:

                <div class="form-group">
                    @Html.LabelFor(model => model.AssetCategory.MasterCategory, htmlAttributes: new { @class = "control-label" })
                    @Html.DropDownListFor(model => model.AssetCategoryNames, Model.AssetCategoryNames, "Seçim yapınız", htmlAttributes: new { @class = "form-control" })                        
                </div>

和div类(包括dropdownlistfor helper方法)

 String s="<head><meta name='viewport' content='target-densityDpi=device-dpi'/></head>";            
 webview.loadDataWithBaseURL(null,s+htmlContent,"text/html" , "utf-8",null);   

我收到了错误

  

&#39; /&#39;中的服务器错误应用。   你调用的对象是空的。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。   异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。

我坚持这个。

2 个答案:

答案 0 :(得分:0)

我建议你这样做dropdownlistfor  您可以创建一个模型类,并添加一个从数据库中检索数据的函数,而不是使用视图模型

你的模型类应该像,`

public list<selectListItem> function()
{
    AssetCategoryList = (from x in db.AssetCategory
                                 select x).ToList();
            AssetCategoryNames = (from x in db.AssetCategory
                                  select new SelectListItem
                                  {
                                      Text = x.Name,
                                      Value = x.Code
                                  });`
}
return list;

它应该将值作为列表返回。

然后控制器部分

 public ActionResult AddNewCategory()
    {
        AssetCategoryModel acm = new AssetCategoryModel();
viewmodel vm=new viewmodel();
vm.assetcatagorylist=acm.function();

        return View("viewname",vm);
    }

那么您应该通过将viewmodel数据传递给ur视图来将数据呈现给视图,

您的观点就像

@using projectname.ViewModel
@model ViewModel
<html>

//your design part

     @Html.DropDownListFor(m => m.assetcatagorylist, Model.assetcatagorylist, new { @id ="hi" })


</html>

完美的工作 欢呼声,

答案 1 :(得分:0)

非常感谢你。 我忘了将新模型添加到actionresult视图中。 我已经更改了控制器部分,如下所示,我工作

    public ActionResult AddNewCategory()
    {
        AssetCategoryViewModel acvm = new AssetCategoryViewModel();
        return View(acvm);
    }

感谢。