2010-10-12 3 views
4


Есть ли способ изменить свойства модели из функции javascript внутри представления?Как изменить свойство модели из функции javascript внутри представления?

В частности, у меня есть вид редактирования и необходимо получить доступ к строковое значение свойства с

функции SomeJSFunction() {
вар somevar = '<% = Model.Property%>';
...

затем сделать некоторые изменения на somevar и установить модель свойство измененной строки. Я делаю подачу в этот момент, поэтому речь идет не о том, чтобы иметь дело с дисплеем, просто нужно изменить модель изнутри функции, прежде чем я отправлю. Я знаю, что могу передать строку в качестве параметра и обработать ее внутри контроллера, но он просто не сокращает ее, поскольку мне действительно нужно сделать это в представлении. Цените любую помощь!

+0

Я не думаю, что вы можете изменить то, что уже есть в ViewModel - я считаю, что это только для чтения. Почему бы вам не установить скрытое поле в форме (из javascript), то вы можете посмотреть это в коллекции Request.Form при отправке? – RPM1984

+0

Да, это только для чтения. подумайте о модели как о «обслуживаемом» ответе. как только он будет записан на страницу, ответ будет завершен. это не похоже на связанные элементы управления в webfroms, которые говорят о жизненном цикле страницы. вам придется «отправлять» изменения обратно через форму .net или через jquery ajax и т. д., это в основном то, как работает mvc, поэтому есть много материала для ссылки. –

ответ

5

Вы не можете сделать это, используя javascript. Модель создается экземпляром контроллера и переходит к представлению. Если вы хотите изменить некоторые свойства, вам нужно будет выполнить запрос к действию контроллера и отправить новые значения. Это можно сделать либо с использованием стандартной формы, либо запроса AJAX.

+0

OK, что разъясняет это для меня. Большое спасибо! – pklosinski

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