Я изучаю MVC, и я пытаюсь понять, как получить доступ к ViewModel на уровне контроллера.Как получить доступ к ViewModel на контроллере
Мой вопрос в том, как мне получить доступ к ViewModel в MethodTwo?
- Должен ли я отправить ViewModel обратно в вызов AJAX?
- Есть ли простой способ получить доступ к модели просмотра в этом методе?
Например:
ViewModel
public class MyViewModel
{
public int MyID { get; set; }
public string MyString { get; set; }
public bool MyBool { get; set; }
}
В контроллере у меня есть это:
public ActionResult MethodOne(int myId, string myString, bool myBool)
{
MyViewModel mvm = new MyViewModel { MyID = myId, MyString = myString,yBool = myBool };
return View("MyPrint", mvm);
}
На моей странице MyPrint Я делаю Ajax GET (к тому же контроллеру), и я хочу получить доступ к тому же ViewModel.
public string MethodTwo()
{
// How can I access the ViewModel here???
//var myString = DoStuff(MyViewModel);
return myString;
}
Чтобы получить доступ к значениям модели в 'MethodTwo', вам необходимо передать их' MethodTwo'. Если вы выполняете запрос GET, это будут значения в запросе. Как выглядит запрос ajax? – markpsmith
$ .ajax ({ типа: 'GET', URL: '/ Главная/MediaReach/GetPrintData', CONTENTTYPE: 'текст/html', данные: { mrpm: @model } }). Сделано (функция (результат) { $ ("# abc"). append (result); print(); }). fail (function (xhr, ajaxOptions, thrownError) { }); – PrivateJoker
@JDS Используйте метод ModelBinding для получения данных в контроллере модели внутри. [Nice] (http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx) учебник здесь. –