我想返回带有“IsError”标志的错误html文本 我怎么能实现呢? 这是我的审判 假设我提交了Ajax.BeginForm并在服务器端发生错误。
Global.asax中
void Application_Error(Object sender, EventArgs e)
{
var exception = Server.GetLastError();
var number = GetErrorNumber();
Server.ClearError();
Response.Redirect("/Error?number=" + number, false);
}
查看错误/索引
<div>
An error occurred<br>
Error number : @ViewBag.ErrorNumber
</div>
ErrorController 我想返回JSON,包括查看html和“IsError = true”!!
ViewBag.ErrorNumber = number;
return View();
客户端JavaScript捕获返回的值 如果“IsError”为真,则返回的html文本将呈现。(我希望)
答案 0 :(得分:1)
我认为你应该返回json并使用javascript在客户端创建HTML DIV。我想你不能在json中返回HTML。
答案 1 :(得分:0)
你的需求似乎很不寻常,这通常表明其他地方存在问题。
我建议采用以下方法:
以下是您的行动示例:
public ActionResult FormPostHandler()
{
try
{
// Process request
}
catch (Exception ex)
{
if (Request.IsAjaxRequest())
{
return Json(new
{
Success = false,
ErrorNo = 1
});
}
else
{
return View("ErrorView"); // add model for error
}
}
}
<强>更新强>
再次阅读你的问题之后,我可能已经想出了你想要达到的目标。
Success
为false,则创建显示错误所需的html,并将其添加到HTML DOM中。我想说使用JSON返回html是不好的做法,最好让JSON只携带信息并让你的表示层(html和javascript)处理外观。
如果您正在使用jQuery,原型等,这应该非常简单。