Мне нужен способ ссылки на другую модель в моем компоненте представления, где я пытаюсь связать вспомогательный объект Html (checkboxfor).
@model Microsoft.WindowsAzure.Storage.Table.TableResult
@{
var result = Model.Result as TenantSettingsModel;
}
<form asp-controller="Settings" asp-action="SaveSettings" method="post">
<table border="0">
<tr>
<td><label for=@result.PartitionKey>Your API Key: </label> </td>
<td>@result.PartitionKey</td>
</tr>
<tr>
<td><label for=@result.RowKey>Domain Name: </label></td>
<td>@result.RowKey</td>
</tr>
<tr>
<td><label for="@result.AutoUpdateNodes">Auto Update Nodes: </label>
</td>
<td>@Html.CheckBoxFor(m => m.AutoUpdateNodes)</td>
</tr>
MVC считает, что мое лямбда-выражение относится к моей модели «TableResult», а не к «TenantSettingsModel», где существует «AutoUpdateProperty».
Редактировать: Если я приведу TableResult к TenantSettingsModel в контроллере, а затем удалю свой оператор модели в представлении, я получу ошибку времени выполнения MVC, сообщив следующее:
InvalidOperationException: элемент модели, передаваемый в ViewDataDictionary, имеет тип 'Microsoft.WindowsAzure.Storage.Table.TableResult', но для этого экземпляра ViewDataDictionary требуется элемент модели типа 'TeamsAnalyzer.Models.TenantSettingsModel'.
Вот почему мой взгляд имел следующий код:
var result = Model.Result as TenantSettingsModel;