3

Для доступа Модели Вида на Javascript можно использоватьКак получить доступ к модели PartialView MVC в Javascript?

var additional = '@Html.Raw(Json.Encode(Model))'; 

Но как насчет модели Частичного вида на главном экране?

Проблемы я столкнулся в загружает частичный вид в Keno UI window виджет с помощью JQuery Ajax вызова Внутри частичного вида у меня Upload widget и это имеет какое-то событие (например: onUpload события), если я поставил onUpload событие внутри частичное представление, оно не распознает его. Поэтому мне пришлось поместить его в Main view.

В этом случае '@Html.Raw(Json.Encode(Model))' возвращает модель основного вида, а не частичную.

Любые идеи о том, как решить эту проблему?

+0

Как загружаемой в PartialView? С помощью азасового вызова JavaScript? или это через '@ {Html.RenderAction (« YourView »); } ' – scgough

+0

@scgough, я загружаю через jquery ajax call – Mostafa

ответ

0

Ok, Если вы загружаете Частичное через вызов Ajax, и вы хотите, чтобы инициировать <script> блок внутри Частичное, вы можете запустить следующую JS на успешной загрузки вызова Ajax (после того, как вы упали HTML Partial на родительской странице).

var reponseScript = $(jqXHR.responseText).filter("script"); 
jQuery.each(reponseScript, function (idx, val) { eval(val.text); }) 

Я предполагаю, что вы используете jQuery. Он будет запускать любые блоки JavaScript Partial.

+0

Спасибо, но что бы этот код мог сделать? Это вызывает событие java script при частичном просмотре? Потому что, когда я пытаюсь это сделать, он не – Mostafa

+0

Нет, он должен просто «зарегистрировать» его, когда частичная загрузка загружена в основной вид. Затем событие должно запускать «onupload», как ожидалось. Очевидно, что это зависит от кода JS в частичном. Идея заключается в том, что код JS может оставаться в частичном представлении, и не имеет значения, что он был загружен через Ajax. Я использовал его несколько раз. – scgough

1

Это путь у меня есть доступ ко всей модели:

var model = function() { return @Html.Raw(Json.Encode(Model)) }(); 

Частичный вид имеет модель:

@model SomeModel 


    <script type="text/javascript"> 
    $(document).ready(function() { 
     var model = function() { return @Html.Raw(Json.Encode(Model)) }(); 
     }); 
    </script> 
+0

Спасибо, Дин, но, как упоминалось в вопросе, он возвращает модель основного вида, а не частичную. – Mostafa

Смежные вопросы