Динамически добавленные, строго типизированные частичные представления не видят модель - PullRequest
0 голосов
/ 14 октября 2010

Вот мой сценарий: у меня есть представление с выпадающим списком, и когда пользователь выбирает элемент в списке, я хочу динамически вставить частичное представление, строго типизированное с той же моделью, что и родительское представление. Я думал, что это довольно распространенный сценарий, и его было бы довольно легко сделать, но я мог ошибаться (или просто неопытен).

Подход, который я попробовал, состоял в том, чтобы использовать этот скрипт (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 голосов
/ 14 октября 2010

Вы говорите, что это работает или это не работает? Ваш вопрос сбивает с толку.

Я бы использовал эту технику, поэтому я не уверен, что проблема в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...