我有一个网页,显示HTML表格中的项目列表.列表上方是一个表单,允许用户通过AJAX(使用Ajax.BeginForm)将新项添加到列表中.当数据通过AJAX发布到控制器时,我将新项添加到数据库后端,并通过部分视图生成新的表行,然后将其附加到现有表.
当添加新项目的表单包含错误时,我想将表单呈现回Web浏览器并显示它.
所以这就是问题:是否可以在控制器中指定UpdateTargetId?目前,我从控制器返回的任何视图都插入到同一目标中,但我想根据从控制器返回的任何视图更新不同的目标(即不同的UpdateTargetId).
我认为解决方法可能是使用JSON并在回调函数中检查结果.这是它的样子:
function handleAjax(response) {
var result = response.get_response().get_object();
var isSuccess = result[0].isSuccess;
if(isSuccess = "true")
{
$("#resultdiv").html(result[0].html);
}
else
{
$("#formdiv").html(result[0].html);
}
}
Run Code Online (Sandbox Code Playgroud)
在你的行动中你可以写下这样的东西:
public ActionResult SaveRecord(Entity entity)
{
if(ModelState.IsValid(){
return Json(new{isSuccess = true, html = PartialView("RowViewName")});
}
else
{
return json (new{isSuccess = false, html = PartialView("FormViewName")})
}
}
Run Code Online (Sandbox Code Playgroud)
我今天遇到了同样的问题,找不到"合法"的方式.我认为这个简单的解决方法应该完成它.目前代码完全未经测试.
请阅读此博客文章以获取替代解决方案.
| 归档时间: |
|
| 查看次数: |
2908 次 |
| 最近记录: |