假設(shè)我有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) %>在部分我會(huì)做<%= Html.TextBox("Name", Model.Name) %>or<%= Html.TextBoxFor(x => x.Name) %>但是,問題在于兩者都將渲染name =“ Name”,而我需要具有name =“ Child.Name”才能使模型綁定程序正常工作?;蛘撸?dāng)我使用相同的局部視圖渲染第二個(gè)屬性時(shí),使用name =“ Child2.Name”。如何使我的局部視圖自動(dòng)識(shí)別所需的前綴?我可以將其作為參數(shù)傳遞,但這太不方便了。例如,當(dāng)我想遞歸渲染時(shí),情況甚至更糟。有沒有一種方法可以呈現(xiàn)帶有前綴的部分視圖,或者甚至更好的方法是自動(dòng)重新構(gòu)造調(diào)用的lambda表達(dá)式,以便<% Html.RenderPartial("AnotherViewModelControl", Model.Child) %>會(huì)自動(dòng)添加正確的“孩子”。生成的名稱/ ID字符串的前綴?我可以接受任何解決方案,包括第三方視圖引擎和庫-我實(shí)際上使用了Spark View Engine(我使用其宏“解決”了問題)和MvcContrib,但在那里沒有找到解決方案。XForms,InputBuilder,MVC v2-提供此功能的任何工具/見解都會(huì)很棒。目前,我正在考慮自己編寫代碼,但這似乎是在浪費(fèi)時(shí)間,我不敢相信這些瑣碎的東西尚未實(shí)現(xiàn)。可能存在很多手動(dòng)解決方案,歡迎所有人使用。例如,我可以強(qiáng)制我的局部對(duì)象基于IPartialViewModel <T> {public string Prefix; T型;}。但是我寧愿選擇一些現(xiàn)有的/批準(zhǔn)的解決方案。更新:有沒有回答類似的問題在這里。
- 3 回答
- 0 關(guān)注
- 627 瀏覽
添加回答
舉報(bào)
0/150
提交
取消