我正在尝试使用 jQuery 将 PartialView 的编辑表单加载到 div 中。我正在重载 EditUser 操作。第一个是用于传递 id 并使用现有详细信息加载表单。第二个是发回表格以供保存。但是当我使用 jQuery 和 Url.Action 加载时,它似乎调用了第二种方法。如果我注释掉第二个 EditUser 方法,那么它会调用第一个方法。这是为什么?当我通过 staffID 时,如何让它调用第一个?或者有没有更好的方法在部分视图场景中实现这个编辑表单?
CreateUser 操作工作得很好,因为重载方法没有歧义,因为 1 没有参数,而另一个有模型作为参数。
谢谢
这是我的控制器:
public PartialViewResult EditUser(String staffId)
{
User um = userService.GetUserDetails(1, staffId, true);
return PartialView(um);
}
[HttpPost]
public PartialViewResult EditUser(User um)
{
if (!TryUpdateModel(um))
{
ViewBag.updateError = "Edit Failure";
return PartialView("EditUser", um);
}
userService.CreateUpdateUser(um);
return PartialView("ViewUser", um);
}
public PartialViewResult CreateUser()
{
ViewBag.Message = "Create New User";
return PartialView(new User());
}
[HttpPost]
public ActionResult CreateUser(User um)
{
if (!TryUpdateModel(um))
{
ViewBag.updateError = "Create Failure";
return PartialView(um);
}
userService.CreateUpdateUser(um);
return View("Index");
}
这就是我加载 EditUser 部分视图的方式:
function menuEdit() {
$('#ActionMenu').hide();
$('#SearchBar').hide();
$('#SearchPanel').hide();
$('#SearchResult').hide();
$('#AddViewEditUser').load("@Url.Action("EditUser","User")", {staffId : sId});
$('#AddViewEditUser').show();
}