处理错误而无需重定向& MVC中的页面刷新

时间:2017-11-24 10:44:39

标签: javascript c# jquery asp.net-mvc error-handling

如何在不重定向或刷新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.
    }
}

2 个答案:

答案 0 :(得分:0)

您的Controller方法可以返回各种类型的内容。

例如,您可以使用

return Json()

并给出该方法的对象。这会将您的对象转换为Json,然后您可以在JS代码中处理它。 更简单的是,如果你真的只需要错误信息,你只需返回一个字符串并在JS中处理它。

如果您使用这些方法中的任何一种作为返回值,则不应重新加载页面。

答案 1 :(得分:0)

使用表单的“提交”无法实现这一目标。发布表单将触发从浏览器重新加载页面。 您需要的是对Web服务的AJAX调用,该调用将返回验证结果。

如果你在客户端使用jQuery,请查看jQuery ajax方法。您可以通过这种方式调用控制器操作,并在javascript中执行页面中的任何渲染。