根据视图使用不同的updatetargetid

Jer*_*ser 4 asp.net-mvc

我有一个网页,显示HTML表格中的项目列表.列表上方是一个表单,允许用户通过AJAX(使用Ajax.BeginForm)将新项添加到列表中.当数据通过AJAX发布到控制器时,我将新项添加到数据库后端,并通过部分视图生成新的表行,然后将其附加到现有表.

当添加新项目的表单包含错误时,我想将表单呈现回Web浏览器并显示它.

所以这就是问题:是否可以在控制器中指定UpdateTargetId?目前,我从控制器返回的任何视图都插入到同一目标中,但我想根据从控制器返回的任何视图更新不同的目标(即不同的UpdateTargetId).

Muh*_*hid 5

我认为解决方法可能是使用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)

我今天遇到了同样的问题,找不到"合法"的方式.我认为这个简单的解决方法应该完成它.目前代码完全未经测试.

请阅读此博客文章以获取替代解决方案.