使用Route Id值的ASP.NET MVC 3 Model Id
脚本
路线:/ template / customize / 10 其中:10 =模板的ID() 在控制器中,模型是基于模板创建的,因此View的模型实际上是一个Customization()对象,实际上Id为0,因为它是新的. 在视图中我渲染@ Html.HiddenFor(m => m.Id)并且隐藏输入的结果值是10,尽管它应该是0,因为m是Customization类型.我之前使用MVC 2遇到过这种情况,并且通过不使用辅助方法解决了这个问题. 问题 >是否有注释或其他东西 附加代码澄清 视图 @model Project.Core.Domain.Customization @using( Html.BeginForm( "save","customization" ) ) { @Html.HiddenFor( m => m.Id ) @Html.HiddenFor( m => m.Template.Id ) <button type="submit" id="save" name="save">Save</button> } 调节器 public ActionResult Customize( int id ) { var template = Persistence.Data.RetrieveObject<Template>( id ); var model = new Customization(); ViewBag.Template = template; return ( View( model ) ); } 解 将Action的签名更改为: public ActionResult Customize( int TemplateId ){ ... } 将链接更改为操作: @Html.ActionLink( "customize","customize",new { TemplateId = template.Id } ) 我最终得到了一个看起来像的网址 /template/customize?TemplateId=10 这很丑陋,但是我可以用模型来保持我的观点清洁.所以这对我来说是一场胜利. 解决方法
我认为这是因为当你使用像@ Html.HiddenFor(m => m.Id)这样的东西时,html助手会在各个地方查看以填充输入的值,并且路径中的值就是其中一个位置.
因此,您可以更改路线,使其类似于模板/自定义/ {TemplateId},然后让您的操作方法反映出来,例如: public ActionResult Customize(int templateId). 或者您可以更改具有CustomizationId属性而不仅仅是Id的viewmodel(或创建自定义视图模型). 不,它不是一个错误…它更像是一个可以带来无法预料的后果的功能.但是一旦你意识到它,它就像一种享受. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – TryUpdateModel的实例,ASP .NET MVC 3
- asp.net-mvc – MSFT报告查看器(rdlc)是否可以使用MVC
- ASP.NET MVC UrlHelper.GenerateUrl异常:“无法使用导航..
- asp.net mvc从Html.textbox()获取值
- 如何在OWIN asp.net Web API启动时获取根URL
- 将ASP移植到Django或ASP.NET
- asp.net – Google协议缓冲区或.net / javascript类似的东西
- asp.net-mvc – ASP.NET MVC 4 Catch-all仅在本地而不是在远
- asp.net – 提供HTTP401 Not Authorized错误的VB.Net Web方
- JS_正则表达式_使用字符串创建的正则表达式_反斜杠也需要添
- asp.net – 从页面代码中访问代码隐藏变量
- asp.net – 是否可以访问配置文件而不更新LastAc
- asp.net-mvc – 我应该将LightSwitch用于大型项目
- asp.net-mvc – 从ASP.NET MVC 3中的RequiredAtt
- asp.net-mvc – 如何使用post或get来检查控制器是
- entity-framework – 有没有办法让ASP.NET 5依赖
- asp.net-mvc – 如何从视图中检索传递给我的自定
- 剃刀 – Asp.net Core如何呈现视图
- asp.net-mvc – 当ASP.NET 5(vNext)无法重定向绑
- entity-framework – ASP .Net MVC与Java的[Tran