如何在不重定向或刷新MVC页面的情况下处理错误?
事实上,我的View.cshtml有几个标签,我想发布一个特定的和处理错误(如果有的话)而不重定向和刷新页面。我其实想提醒错误。
以下是我的JavaScript代码段:
fn_GetData: function () {
$('#frm4').attr('action', 'my url goes here').attr('method', 'post');
$('#div4').html('<input type="hidden" name="p" value="' + 'some value goes here' + '"/> ');
$('#frm4').submit();
}
这是我的Controller Action代码:
public ActionResult GetData(string p)
{
var error = false;
// Some logic goes here...
if (error)
{
TempData["Result"] = "My error message goes here";
// I don't know how to alert the above error message without having to redirect or refresh the page.
}
}
答案 0 :(得分:0)
您的Controller方法可以返回各种类型的内容。
例如,您可以使用
return Json()
并给出该方法的对象。这会将您的对象转换为Json,然后您可以在JS代码中处理它。 更简单的是,如果你真的只需要错误信息,你只需返回一个字符串并在JS中处理它。
如果您使用这些方法中的任何一种作为返回值,则不应重新加载页面。
答案 1 :(得分:0)
使用表单的“提交”无法实现这一目标。发布表单将触发从浏览器重新加载页面。 您需要的是对Web服务的AJAX调用,该调用将返回验证结果。
如果你在客户端使用jQuery,请查看jQuery ajax方法。您可以通过这种方式调用控制器操作,并在javascript中执行页面中的任何渲染。