【问题标题】:MVC Razor TextBoxFor() based on other Model List of Complex ObjectMVC Razor TextBoxFor() 基于复杂对象的其他模型列表
【发布时间】:2015-12-02 01:03:01
【问题描述】:
所以我有一个名为派对的模型,其中包含一个讲师列表。
我想根据 Instructor 对象的属性创建 TextBoxFor。
当我执行 @Html.TextBoxFor(x => x.Model.Instructors...) 时,如果不使用带有 Linq 的 Select,我无法获取 Instructor 对象的属性。如果我使用 linq,我需要动态获取我想要的特定讲师。我需要获取该讲师的信息基于表单上其他位置的文本框,但我如何动态获取另一个文本框的值以满足 linq 表达式?
【问题讨论】:
标签:
c#
html
linq
asp.net-mvc-4
razor
【解决方案1】:
取决于您要达到的目标。听起来(模糊地)您想要的更多是那里的 MVVM 架构,在这种情况下,您应该查看角度或类似的。也许我误解了你想要什么。
TextboxFor 无法为对象列表生成文本框。你希望它产生什么?文本框列表?如果您想要的只是一个具有唯一名称的文本框,那么只需选择一个实例,例如 @Html.TextBoxFor(x=>x.Model.Instructors.FirstOrDefault().something)
如果通过“动态获取我想要的特定讲师”意味着他们将在客户端选择它并且您可以编辑当前现有记录,那么您可能应该将讲师列表发送到 javascript 数组中,然后编写一些客户端代码来为您挑选它。或者,如果讲师列表太大,您可以进行 AJAX 调用。为什么要基于文本框值,不应该基于下拉/选择值?