Я работаю над небольшим приложением ASP.NET MVC 4 в сочетании с MongoDB. В настоящее время у меня есть 4 мнения: индекс, создание, список, редактирование. Создать - это форма для размещения данных в базе данных. Список - это список для отображения данных. Редактировать - это форма для редактирования данных. Эти три представления отображаются внутри представления Index (RenderAction).Скрыть/Посмотреть Редактировать форму просмотра
Цель состоит в том, чтобы отображать только два вида внутри индексного вида. Комбинация индекса с Create или комбинация Index с Edit.
В этот момент у меня возникли проблемы с Edit View (внутри контроллера):
[HttpGet]
public ActionResult Edit(string id)
{
Car car = CarRentalContext.Cars.FindOneById(new ObjectId(id));
return View(car.ConvertToUpdateViewModel());
}
Изменить вид:
@model MvcApplication1.ViewModels.UpdateCarViewModel
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>UpdateCarViewModel</legend>
@Html.HiddenFor(model => model.Id)
<div class="editor-label">
@Html.LabelFor(model => model.Make)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Make)
@Html.ValidationMessageFor(model => model.Make)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.NumberOfDoors)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.NumberOfDoors)
@Html.ValidationMessageFor(model => model.NumberOfDoors)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DailyRentalFee)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DailyRentalFee)
@Html.ValidationMessageFor(model => model.DailyRentalFee)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
Индекс Вид:
@model MvcApplication1.ViewModels.InsertCarViewModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@{Html.RenderAction("Create", Model);}
</div>
<div>
@{Html.RenderAction("List", Model);}
</div>
<div>
@{Html.RenderAction("Edit", Model);}
</div>
</body>
</html>
Очевидно в представлении «Редактировать» требуется идентификатор для отображения, и теперь он получает ошибку, когда я использую RenderAction
, потому что есть нет идентификатора, когда я запускаю приложение. Я хочу скрыть это представление, когда он не нужен, и отображать это представление только тогда, когда это необходимо. Как я могу достичь этого без Javascript/JQuery.
Должен ли я иметь оператор if/else внутри моего ActionResult
?
Не могли бы вы разместить существующий 'View' – ediblecode
Я отредактировал свой вопрос. В моем представлении индекса у меня есть 3 div's. В каждом div есть '@ {Html.RenderAction (« Вид », Модель);}' – bbvanee
Я хотел увидеть ваш «Индекс», извинения. – ediblecode