首页 新闻 赞助 找找看

mvc中控制器中,逻辑出错时友好提示显示

0
悬赏园豆:40 [已解决问题] 解决于 2015-07-29 08:13

当逻辑出现错误时候,地址栏url不变,视图跳转到错误页面定义的视图,并返回提示消息

即:

控制器层传2个参数(视图名称,错误消息)然后把错误消息 渲染给 错误页视图,而地址栏url不变。视图路径是动态查找的

唯我独萌的主页 唯我独萌 | 小虾三级 | 园豆:537
提问于:2015-07-28 15:19
< >
分享
最佳答案
0

直接看代码

本来是访问Index 然后我是返回的Error

public ActionResult Index()
{
    var msg = new Msg {Test = "测试错啦"};  
    return PartialView("error", msg);   //这里用View也是可以的
}

Msg就是一个model  只有一个Test属性

然后你需要在error的cshtml中加入@model xxx.Models.Msg  就可以通过@Model得到Msg对象

@model MvcApplication.Models.Msg
<
div> 错误页面消息:@Model.Test </div>
收获园豆:30
jio92 | 小虾三级 |园豆:1064 | 2015-07-28 17:31
其他回答(3)
0

不行。

你得使用 Partial View,也就是我们常说的局部刷新。

收获园豆:5
Launcher | 园豆:45045 (高人七级) | 2015-07-28 15:22

可以实现的,有个哥们儿就写出来了

地址:http://youyunjia.w20.guoji.biz/fasdfsdafsda.html

支持(0) 反对(1) 唯我独萌 | 园豆:537 (小虾三级) | 2015-07-28 15:25

@背叛的冲刷: 

我能告诉你它就是一个视图,只是返回不同的内容,而从没做任何跳转吗?

请问,你说的“跳转”具体是什么含义?

你能不能别自己想解决方案,只说出你的需求?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-07-28 15:43

@Launcher: 控制器层传2个参数(视图名称,错误消息)然后把错误消息 渲染给 错误页视图,而地址栏url不变。视图路径是动态查找的

支持(0) 反对(0) 唯我独萌 | 园豆:537 (小虾三级) | 2015-07-28 15:51

@背叛的冲刷: 我想到三种方式:

1、使用 Partial View;

2、在 View 中根据 ViewModel 的值生成不同的 HTML 代码;

3、在 Asp.Net MVC 中模拟 Server.Transfer 功能,参照:http://stackoverflow.com/questions/799511/how-to-simulate-server-transfer-in-asp-net-mvc

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-07-28 16:04
0

Server.Transfer会帮到你,你可以自定义实现一个ServerTransfer类型的ActionResult

收获园豆:5
JeffWong | 园豆:2328 (老鸟四级) | 2015-07-28 15:52
0

D_M | 园豆:202 (菜鸟二级) | 2015-08-04 12:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册