Я добавил новый контроллер, то я выбрал следующие варианты:Как объединить два вида в одном представлении с помощью Asp.net MVC4?
- Шаблон: MVC контроллер с чтения/записи действий и представлений, с помощью Entity Framework.
- Модельный ряд: Фильм (MvcMovie.Models).
- Класс контекста данных: MovieDBContext (MvcMovie.Models).
- Просмотры: Razor (CSHTML).
У меня есть папка с представлениями, которая включает по умолчанию: Индекс, Творчество, Редактировать, Детали и Удалить.
Все работает отлично.
Моя проблема в том, что я пытаюсь объединить коды Create view с кодами Index View (Два вида в одном).
Ошибка, которую я получаю:
Компилятор Сообщение об ошибке: CS1061: «System.Collections.Generic.IEnumerable» не содержит определения для «Title» и не метод расширения «Title» Принятие первой аргумент типа 'System.Collections.Generic.IEnumerable' может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)
Вот мой Merged View (Index.cshtml):
@model IEnumerable<ReMvc.Models.Movie>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Movie</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ReleaseDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ReleaseDate)
@Html.ValidationMessageFor(model => model.ReleaseDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Genre)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Genre)
@Html.ValidationMessageFor(model => model.Genre)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Price)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Price)
@Html.ValidationMessageFor(model => model.Price)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReleaseDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Genre)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
</tr>
}
</table>
Вот мой контроллер: я переименовал «Создать» ActionResult Индекс
namespace ReMvc.Controllers
{
public class MoviesController : Controller
{
private MovieDbContext db = new MovieDbContext();
//
// GET: /Movies/
public ActionResult Index()
{
return View(db.Movies.ToList());
}
[HttpPost]
public ActionResult Index(Movie movie)
{
if (ModelState.IsValid)
{
db.Movies.Add(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
}
А вот моя модель: с использованием системы; с использованием System.Data.Entity;
namespace ReMvc.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDbContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
Я новичок в MVC и я застрял здесь в течение более 4 дней .. пожалуйста, помогите.
, Да, я хочу использовать тип IEnumerable и тип ReMvc.Models.Movie в том же представлении, поэтому я сделал это как упомянутый. Добавил новый тип, передал его и отредактировал мой контроллер .. и я получаю Сообщение об ошибке Parser: Неожиданное ключевое слово "foreach" после символа "@". После внутреннего кода вам не нужно префиксные конструкции, такие как «foreach» с «@». И когда я удаляю «@», я получаю сообщение об ошибке компилятора: CS1579: оператор foreach не может работать с переменными типа «ReMvc.ViewModel.MovieViewModel», потому что «ReMvc.ViewModel.MovieViewModel» не содержит общедоступного определения для «GetEnumerator», –
Ayman
Я хочу, чтобы вы увидели мой просмотр после редактирования, но я не смог опубликовать его в комментарии! – Ayman
Workssss! теперь без ошибок, но foreach не возвращает никакого списка в представление Index, кажется, что MovieCollection пуст !!!! как сдать это, пожалуйста? здесь Index.cshtml файл [ссылка] (http://wikisend.com/download/554262/Index.cshtml) – Ayman