动态添加的强类型部分视图不会看到模型

时间:2010-10-13 22:10:55

标签: asp.net-mvc partial-views

这是我的场景:我有一个带有下拉列表的视图,当用户选择列表中的项目时,我想动态插入一个部分视图,该部分视图使用与父视图相同的模型进行强类型化。我认为这是一个相当常见的场景,并且很容易做到,但我可能错了(或者只是缺乏经验)。

我尝试的方法是使用这个脚本(jQuery)在列表'onchange'事件中被触发:

function loadPartial() {
    var id = $("#MyClass_MyClassId").val();
    var prop = $("#MyClass_MyProperty").val();
    $("#partials").load('/MyController/LoadPartial/?val=' + prop);
}

此脚本调用控制器操作,该操作返回适当的局部视图并将其插入到给定的div(id = partials)中。

问题:动态插入的部分视图中的模型显示为空。

这是我正在插入的强类型部分视图之一(部分视图使用的模型与父视图模型相同):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.Controllers.MyViewModel>" %>

<div class="editor-label">
<label>Enter Data*</label>
</div>

<div class="editor-field">
    <%=Html.TextAreaFor(model => model.MyClass.MyProperty)%>
    <%=Html.ValidationMessageFor(model => model.MyClass.MyProperty)%>
</div>

我不确定这种方法是否最好,或者是否有更好的方法(比如使用RenderPartial)。我不想在控制器操作中重新生成模型,因为我将丢失任何验证消息。我确实做了一个相当彻底的搜索,找到了符合我要求的解决方案,但我找不到一个,所以任何建议/建议都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

你是说这个有用还是不行?你的问题很混乱。

这是我会使用的技术,所以我不确定问题是什么。