asp.net-mvc – 如何在路由上处理null {id}?
发布时间:2020-12-16 03:18:58 所属栏目:asp.Net 来源:网络整理
导读:如果用户使用 http://www.mysite.com/Quote/Edit而不是 http://www.mysite.com/Quote/Edit/1000访问我的网站会怎么样?换句话说,他们没有为{id}指定值.如果他们不这样做,我想显示一个漂亮的“未找到”页面,因为他们没有提供ID.我当前通过接受一个可以为null
如果用户使用
http://www.mysite.com/Quote/Edit而不是
http://www.mysite.com/Quote/Edit/1000访问我的网站会怎么样?换句话说,他们没有为{id}指定值.如果他们不这样做,我想显示一个漂亮的“未找到”页面,因为他们没有提供ID.我当前通过接受一个可以为null的int作为Controller Action中的参数来处理这个问题,它工作正常.但是,我很好奇是否有更标准的MVC框架处理方式,而不是我目前使用的代码(见下文).是一种更顺畅的方式来处理这个问题,还是这种方式很合适?
[HttpGet] public ActionResult Edit(int? id) { if (id == null) return View("QuoteNotFound"); int quoteId = (int)id; var viewModel = new QuoteViewModel(this.UserId); viewModel.LoadQuote(quoteId); if (viewModel.QuoteNo > 0) { return View("Create",viewModel.Quote.Entity); } else return View("QuoteNotFound"); } 解决方法
你的其他选择是
>有两个编辑动作;一个以int id作为参数,另一个没有任何参数. 但我喜欢你最好的方法,因为它很简单并且能够正确处理这种情况. 顺便说一下,你不需要那个局部变量,你可以这样做以获得更好的可读性: //... if (!id.HasValue) return View("QuoteNotFound"); var viewModel = new QuoteViewModel(this.UserId); viewModel.LoadQuote(id.Value); //... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – System.Security.SecurityException?
- asp.net-mvc – 刷新数据库更改页面
- 帮助页面ASP.NET vNext MVC 6 Web Api
- 你的控制器应该在asp.net-mvc中有多大
- ASP.NET (C#) 应用篇-数据列分页操作-01_Adapter_Fill
- asp.net – EF首先使用代码与一对多关系创建重复的外键
- asp.net – 如何从列表框中获取所选项目valus而不使用for循
- asp.net – 更新ValidationSummary列表控件模糊?
- asp.net-mvc – 有没有更好的方法来使用MVC 4和Entity Fram
- asp.net-mvc-2 – 使用.Net Framework 4.0的Sharepoint 201
推荐文章
站长推荐
- 是否有比ASP.NET成员资格提供程序更现代的会员/安
- asp.net-mvc – 具有接受routeValues和htmlAttri
- ASP.net会话cookie丢失或删除
- asp.net-mvc – 从客户端检测到潜在危险的Reques
- 对ASP.NET Web API的所有请求返回404错误
- asp.net mvc.显示数据库中的html字符串
- asp.net – 流程模型minFreeThreads澄清
- model-view-controller – 有没有办法在ASP.MVC
- asp.net-mvc – 如何通过MVC Azure AD身份验证从
- asp.net – Web API授权属性不在Action上工作
热点阅读