Как передать тип разности моделей (зависит от возвращаемого в контроллере) для просмотра?Как передать тип разности типов в поле зрения?
Вот мой контроллер:
public ActionResult Index()
{
if (Session["username"] != null)
{
if (isAdmin(Session["username"].ToString()))
{
return View(db.Branches.ToList());
}
else
{
int id = db.Users.Find(Session["username"]).branch_id;
return View(db.Branches.Find(id));
}
}
else
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
}
Как вы можете видеть, это может вернуть разницу типа для просмотра в зависимости от пользователя, является администратором или нет.
И эта точка зрения просто обрабатывается для возвращения списка филиалов, а не отдельные филиалы
@model IEnumerable<Inspinia_MVC5_SeedProject.Models.Branch>
<table class="table table-striped">
<tr>
<th>
@Html.DisplayNameFor(model => model.name)
</th>
<th>
@Html.DisplayNameFor(model => model.address)
</th>
<th>
@Html.DisplayNameFor(model => model.create_date)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.address)
</td>
<td>
@Html.DisplayFor(modelItem => item.create_date)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id=item.id }, new { @class = "btn btn-primary btn-sm"})
@Html.ActionLink("Edit", "Edit", new { id=item.id }, new { @class = "btn btn-white btn-sm"})
@Html.ActionLink("Delete", "Delete", new { id=item.id }, new { @class = "btn btn-white btn-sm"})
</td>
</tr>
}
</table>
Я попытался это, но он просто работает, когда я возвращаюсь оба типа модели. Не то, что я хочу.
@model Tuple<IEnumerable<Inspinia_MVC5_SeedProject.Models.Branch>, Inspinia_MVC5_SeedProject.Models.Branch>
Как я могу справиться с этой штукой, не создавая другого вида для другого типа модели? Спасибо, и я буду очень уместен, если кто-нибудь сможет мне помочь. Вам может не потребоваться опубликовать весь код для меня, просто некоторые ключевые слова или скажите мне, как я могу его решить.
OMG. Вы спасли мою жизнь. Я искал его более 3 часов без каких-либо идей, и вы просто решаете его не более 5 минут. Огромное спасибо. –