как получить доступ к объекту (asp.net mvc)? - PullRequest
0 голосов
/ 25 января 2012

Если действие Controller передает объект некоторого ViewModel, скажем ("otherViewModeObj") представлению, которое строго типизировано для другого ViewMOdel, скажем ("mainViewModel"), то как визуализированное представление обращается к этому объекту напрямую, а также использует этот объект для передачи некоторого частичногоПосмотреть. Обновлен

public class MainViewModel 
     { 
        prop1{}
        prop2{}
     } 

public class SubViewModel 
{ 

public list<SubViewModel> obj{ get; set; } 

}

действие

  Public ActionResut action()
    {
     return View(SubViewModelObj)//But View is Strongly typed to MainViewModel 
    }

Тогда как я могу получить доступ к этому объекту (SubViewModelObj) в этом представлении ??

Ответы [ 2 ]

1 голос
/ 25 января 2012

Я не уверен, что полностью понимаю ваш вопрос, но вы могли бы использовать другую модель представления в качестве свойства в модели основного представления.

public class SubViewModel
{

}

public class MainViewModel
{
  //MainViewModel properties

  public SubViewModel SubViewModelData { get; set; }

}

В поле зрения:

@Html.Partial("_SomePartialView", Model.SubViewModelData)
0 голосов
/ 25 января 2012

Вы не можете этого сделать.У вас есть несколько вариантов:

  1. Имейте SubViewModel наследовать от MainViewModel (на самом деле я не пробовал это, но он должен работать).Тогда это должно работать return View(SubViewModelObj) , но вам придется привести объект модели к SubViewModel в представлении.Мне не нравится этот подход вообще.Я сказал, что это объективно.
  2. Передача данных для просмотра через свойства контроллера ViewData или ViewBag: this.ViewData["your_object_id_or_name"] = SubViewModelObj; Затем вы можете использовать это представление в виде: var myobj = (SubViewModel)this.ViewData["your_object_id_or_name"];
  3. Объединить эти два класса моделей в один.Очевидно, что некоторые свойства этой модели используются в представлении как необязательные, поэтому нет ничего плохого в том, что они имеют нулевое значение (или другие значения по умолчанию) и игнорируют их.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...