Добрый день,
У меня есть макет с полем поиска (с начальной загрузкой и самодельной jquery typeahead).
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("EbanTabs", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse">
@Html.Partial("_TipoProyectoSearch") //<<my searchbox comes here
@*<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>*@
<ul class="nav navbar-nav">
@*<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>*@
</ul>
@Html.Partial("_LoginPartial")
</div>
</div>
</div>
вы можете видеть, что мое окно поиска представляет собой частичное представление, которое использует
//tipoproyectosearch partialview
@model MyProj.Models.Autocomplete
//start view
//...
//end view
Это модель автозаполнения
public class Autocomplete
{
public Guid Id { get; set; }
public string Name { get; set; }
}
Моя проблема началась, когда я создал свое домашнее индексное представление. Я использовал там новую модель
@model IEnumerable<MyProj.ViewModels.MyViewModel>
//here starts my view
//...
//end view
когда я запускаю свое приложение, я получаю эту ошибку
Элемент модели, переданный в словарь, имеет тип «System.Collections.Generic.List`1 [MyProj.ViewModels.MyViewViewModel]», но для этого словаря требуется элемент модели типа «EbanTabs.Models.Autocomplete».
Сообщение об ошибке сообщает мне, что модель неправильная, когда визуализируется частичное представление.
Как мне избежать этой проблемы? Я видел, что некоторые ответы * Несколько моделей MVC 5 в одном представлении *, которые используют сложную модель представления с двумя классами.
Я думаю, что такой подход усложнит мое решение, потому что мне придется создавать много сложных моделей при рендеринге данных в моем представлении.
Есть ли лучший подход, чем упомянутый?
заранее спасибо.
@Html.Partial("_LoginPartial", new LoginModel())
или@Html.Action(actionName, controllerName)
для вызова[ChildActionOnly]
метода контроллера, который возвращает частичное представление - person   schedule 30.03.2018@Html.Partial("_TipoProyectoSearch", new Autocomplete())
- person   schedule 30.03.2018Autocomplete
и установить его свойства, используйтеHtml.Action()
, как указано выше (и в дублировании) - person   schedule 30.03.2018