为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET MVC部分视图:输入名称前缀

ASP.NET MVC部分视图:输入名称前缀

米脂 2019-10-15 14:54:21
假设我有ViewModelpublic class AnotherViewModel{   public string Name { get; set; }}public class MyViewModel{   public string Name { get; set; }   public AnotherViewModel Child { get; set; }   public AnotherViewModel Child2 { get; set; }}在视图中,我可以使用<% Html.RenderPartial("AnotherViewModelControl", Model.Child) %>在部分我会做<%= Html.TextBox("Name", Model.Name) %>or<%= Html.TextBoxFor(x => x.Name) %>但是,问题在于两者都将渲染name =“ Name”,而我需要具有name =“ Child.Name”才能使模型绑定程序正常工作。或者,当我使用相同的局部视图渲染第二个属性时,使用name =“ Child2.Name”。如何使我的局部视图自动识别所需的前缀?我可以将其作为参数传递,但这太不方便了。例如,当我想递归渲染时,情况甚至更糟。有没有一种方法可以呈现带有前缀的部分视图,或者甚至更好的方法是自动重新构造调用的lambda表达式,以便<% Html.RenderPartial("AnotherViewModelControl", Model.Child) %>会自动添加正确的“孩子”。生成的名称/ ID字符串的前缀?我可以接受任何解决方案,包括第三方视图引擎和库-我实际上使用了Spark View Engine(我使用其宏“解决”了问题)和MvcContrib,但在那里没有找到解决方案。XForms,InputBuilder,MVC v2-提供此功能的任何工具/见解都会很棒。目前,我正在考虑自己编写代码,但这似乎是在浪费时间,我不敢相信这些琐碎的东西尚未实现。可能存在很多手动解决方案,欢迎所有人使用。例如,我可以强制我的局部对象基于IPartialViewModel <T> {public string Prefix; T型;}。但是我宁愿选择一些现有的/批准的解决方案。更新:有没有回答类似的问题在这里。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 607 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信