У меня есть HomeController с этим кодом:MVC частичным видом и модели
public ActionResult Index()
{
IndexModel m = new IndexModel();
m.Test = "someString";
m.LoginModel = new ViewLoginModel();
m.LoginModel.Test = "FromLogin";
return View("Login", m);
}
И в моем Index.cshtml, у меня есть это:
@model IndexModel
//bunch of HTML
@Html.Partial("_Login", Model.LoginModel)
И в _Login.cshtml, это:
@model ViewLoginModel
//bunch of HTML
@Html.LabelFor(model => model.Test)
в общем, что я хочу сделать, это иметь отдельную модель для частичного окна (логин) в моей домашней странице, и эта модель может быть или нет child из ViewIndexModel (в идеале это не должно существовать). Я пытаюсь получить доступ к переменным и написать/использовать их в частичном представлении, но он не работает - вместо этого отображает имя свойства.
В частичном представлении «_Login» intellisense также не работает по какой-либо причине (VS2013), хотя @ Html.BeginForm и все работает, но я не могу получить доступ к свойствам модели.
Что я делаю неправильно, как я могу это исправить?
Кроме того, есть ли разница между этими двумя?
@Html.Partial("~/Views/Home/_Login.cshtml")
@Html.Partial("Login")
Кажется, когда я использую # 2 функции «Вход» вызывается в моей HomeController, не знаю, почему ...
Html.Partial требует имя функции, которое возвращает partialView! а не имя страницы cshtml. –