【发布时间】:2017-06-13 14:39:06
【问题描述】:
尝试加载应在 MVC 应用程序的创建视图上显示列表的局部视图时出现错误。该列表是基于一个值将来自一个列表值的下拉控件。
在创建视图时没有选择,因此列表是空的,并且需要在用户在 MVC 创建视图中选择一个值后刷新。
我遵循了这个问题的公认答案并得到了错误:
但我对所说的内容有一些疑问。
有人说:“有一些方法可以做到这一点。例如,您可以使用 jQuery:”,然后他显示了 Java 查询。
但他也展示了另一种方法并说:“如果你在动作中使用逻辑 UpdatePoints() 来更新点”
[HttpPost]
public ActionResult UpdatePoints()
{
ViewBag.points = _Repository.Points;
return PartialView("UpdatePoints");
}
我收到以下错误
参数字典包含“System.Controllers.RController”中方法“System.Web.Mvc.ActionResult UpdateList(Int32)”的不可空类型“System.Int32”的参数“ID”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
我不知道这个错误是什么意思
所以在创建视图中:
<div class="col-sm-6">
<div class="form-horizontal" style="display:none" id="PVList">
@{ Html.RenderAction("UpdateList");}
</div>
</div>
在controller下create action作为自己的函数
[HttpGet]
public ActionResult UpdateList(int ID)
{
if (ID != 0)
{
ViewBag.List = Get_List(ID);
return PartialView("PV_List");
}
else
{
ViewBag.List = "";
return PartialView("");
}
}
以及为视图包函数制作列表的函数:
private List<SQL_VIEW_LIST> Get_List(int ID)
{
return db.SQL_VIEW_LIST.Where(i => i.ID == ID).ToList();
}
值列表下拉值列表的 JavaScript:它还控制在列表有数据时打开列表的可见性:
//Fire The List to make visible after list values select
$(document).ready(function () {
$('#RES_VEH_ID').change(function ()
{
$("#PV_List").show(); // Shows Edit Message
$.post('@Url.Action("PostActionTo_Partial","Create")').always(function()
{ ('.target').load('/Create'); })
});
})
还有谁知道这个字符串是什么意思:? "PostActionTo_Partial"
还有谁知道这是什么意思 ViewBag.points = _Repository.Points;我得到了视图袋部分,但它是 _Repository.Points;我不明白的部分。有人知道那里发生了什么吗?
【问题讨论】:
标签: javascript asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 razor