如果是Razor DisplayFor和TextBoxFor MVC4中的其他逻辑
发布时间:2020-12-16 07:24:03 所属栏目:asp.Net 来源:网络整理
导读:如果设置了某个变量,我希望某个字段成为文本框,如果不是,我希望该字段只显示该值,但该值不可编辑. 我在我的视图中添加了一些if else逻辑,并且不会显示该值.我在这里错过了什么吗? @{ if (isFlagSet) { Html.TextBoxFor(m = m.HostpitalFinNumber,new { @Val
如果设置了某个变量,我希望某个字段成为文本框,如果不是,我希望该字段只显示该值,但该值不可编辑.
我在我的视图中添加了一些if else逻辑,并且不会显示该值.我在这里错过了什么吗? @{ if (isFlagSet) { Html.TextBoxFor(m => m.HostpitalFinNumber,new { @Value = Model.HostpitalFinNumber }); Html.ValidationMessageFor(m => m.HostpitalFinNumber); } else { Html.DisplayTextFor(m => m.HostpitalFinNumber); } } 更新中… 我将代码更改为 @if (isFlagSet) { Html.TextBoxFor(m => m.HostpitalFinNumber); Html.ValidationMessageFor(m => m.HostpitalFinNumber); } else { Html.DisplayFor(m => m.HostpitalFinNumber); } 以下是生成的HTML.注意如何为Phone而不是医院fin写入输入值.确定为什么会发生这种情况. <tr><td> <label for="Phone">Phone</label> </td> <td> <input Value="4124880798" id="Phone" name="Phone" type="text" value="4124880798" /> </td></tr> <tr><td> <label for="HostpitalFinNumber">HostpitalFinNumber</label> </td> <td> </td></tr> 回答 我忘了把@放在我的html助手面前,摆脱了半冒号. 解决方法
您的Razor语法错误,正确的语法是(您不需要周围的@ {}):
@if (isFlagSet) { @Html.TextBoxFor(m => m.HostpitalFinNumber) @Html.ValidationMessageFor(m => m.HostpitalFinNumber) } else { @Html.DisplayTextFor(m => m.HostpitalFinNumber) } Html帮助程序不直接写入响应(名称以Render开头的名称除外),因此您需要使用@将生成的HTML写入输出. 请注意,您不需要使用表达式new {@Value = Model.HostpitalFinNumber}手动设置值,因为Html.TextBoxFor将负责处理它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 阻止对返回部分视图的控制器的直接URL访问?
- asp.net-mvc – 使用MVC和WebAPI避免使用Resharper web.con
- asp.net-core – ASP.NET Core Web Application控制台立即关
- 受asp.net MVC启发的更好的WebForms
- asp.net-mvc – 返回HttpPostedFileBase以查看验证错误
- asp.net – 面向方面的开发/编程资源
- ASP.NET Web API为单个路由定制IHttpControllerSelector
- asp.net-mvc – ASP.NET简单会员提供者?
- asp.net – How2:在HttpModule中挂钩的事件,用于将js链接放
- asp.net – 如何在Eval格式字符串中使用单引号
推荐文章
站长推荐
热点阅读