作者:雨天是最美 | 2023-09-01 13:27
我正在尝试学习ASP.NET MVC,我遇到了这个问题:我有一个"查看产品详细信息"表单,我想将其重新用作添加/编辑表单.(当您查看产品详细信息时,如果您有权执行此操作,则应显示"编辑"链接;它应重新显示相同的表单,但此时启用了文本框字段.)
现在,Details视图看起来像这样:
<% var product = ViewData.Model; %>
Name |
<%= Html.TextBox("Name", product.Name, new { size = "50", disabled = "disabled"})%> |
有没有一种方法可以重用它而不在视图中放置太多逻辑?例如,我需要删除disabled = "disabled"
部件(但size
部件需要留在那里),将所有内容放在表单中等等.
如果不能这样做,那很好,我只是想多次重复同样的事情,以防我需要改变它(我会).
1> Tim Scott..:
使用MvcContrib.FluentHtml你可以这样做(增强Todd Smith的建议):
<%=this.TextBox(x => x.Name).Size(50).Disabled(ViewData.Model.CanEdit)%>
2> Todd Smith..:
您始终可以传入一个值,表明您所处的模式或您拥有的权限:
ViewData.Model.CanEdit
因此,您可能希望为模型创建复合类,而不是仅使用Product
public class ProductViewData
{
public Product Product {get; set;}
public bool CanEdit {get; set;}
}
推荐阅读
-
如何解决《如何为联系人创建iOS共享扩展》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《我们为什么要注意Javascript中的代码注入?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《Node.jsExpress-在完成处理整个请求之前提供HTTP响应》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《swift中原生数组中的初始值设定项》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《获取下一个小时的时间戳》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《用凌空上传多个图像?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《屏幕上的C#WinForms程序中的闪烁清除》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何git责备一个目录》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在Dex阶段构建大型CodenameOne应用程序时出错》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《PowerShell-Set-Culture似乎没有任何改变》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《MVC5绕过Windows身份验证用户身份验证的用户》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《Opcache清除太快》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《java,l=inputStream.readLine())!=null背后的原理逻辑》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何在Swift中删除AVPlayerViewController上的双击缩放功能》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《二进制运算符'&'不能应用于'SCNetworkReachabilityFlags'和'Int'类型的操作数》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《线性时间Euler的Totient函数计算》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《安装Rcompression软件包时出错》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《渲染问题无法加载LayoutLib:》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《公共与受保护的抽象类方法》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《为什么没有调用构造函数?》经验,为你挑选了1个好方法。 ...
[详细]