0
這裏是我的方案:我有一個下拉列表的視圖,當用戶選擇列表中的項目時,我想動態地插入一個部分視圖,強烈鍵入與父視圖相同的模型。我認爲這是一個相當普遍的情況,而且很容易做,但我可能錯了(或者沒有經驗)。動態添加,強類型部分視圖沒有看到模型
我嘗試的方法是使用這個腳本(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)。我不想在控制器操作中重新生成模型,因爲我將丟失任何驗證消息。我做了一個相當徹底的搜索解決方案,以滿足我的要求,但我無法找到一個,所以任何建議/建議將不勝感激。
對不起,我感到困惑。只要用戶從下拉菜單中進行選擇並顯示正確的部分類,一切都會有效。問題是,在部分視圖內,它似乎沒有我可以訪問父視圖模型。我的問題是,如果這是最好的方法,父視圖模型如何傳遞給部分視圖或者是否有另一種方法?我希望這可以清除事情。 – fynnbob 2010-10-14 13:12:04