Текущая ситуация: Начиная с разработки ASP.net MVC и из разработки приложений MVVM. Я борюсь с привязкой вида с моделью/контроллером представления. Я начал с пустого проекта и попытался создать модель, viewmodel, контроллер и представление. Запуск проекта я получаю «Внутренняя ошибка сервера 500», но не понимаю, что не так (в окне вывода нет ошибки). Я просто не могу понять, как представление действительно привязывается к модели представления (возможно, потому, что я слишком много думаю о MVVM).Asp.net MVC привязка для просмотра модели
То, что я в настоящее время:
Startup.cs:
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Extensions.DependencyInjection;
namespace WebApplication1
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Sample}/{action=Index}/{id?}");
});
}
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
}
Модель:
using System;
namespace WebApplication1.Models
{
public class SomeModel
{
public string Title { get; set; }
public DateTime Time { get; set; }
}
}
ViewModel:
using System;
using System.Collections.Generic;
using WebApplication1.Models;
namespace WebApplication1.ViewModels
{
public class SampleViewModel
{
public IList<SomeModel> SomeModels { get; set; }
public SampleViewModel()
{
SomeModels = new List<SomeModel>();
SomeModels.Add(new SomeModel()
{
Time = DateTime.Now,
Title = "Hallo"
});
}
}
}
Контроллер:
using Microsoft.AspNet.Mvc;
using WebApplication1.ViewModels;
namespace WebApplication1.Controllers
{
public class SampleController : Controller
{
//
// GET: /Sample/
public IActionResult Index()
{
return View(new SampleViewModel());
}
}
}
Вид:
@model WebApplication1.ViewModels.SampleViewModel
<!DOCTYPE html>
<html>
<head>
<title>Hallo</title>
</head>
<body>
@foreach (var someModel in Model.SomeModels)
{
<div>@someModel.Title</div>
}
</body>
</html>
Я нашел много статей, говорящих о модели связывания, но они говорят только о формах и ввода. Я хочу показать некоторые данные, например. из базы данных в каком-то списке или около того и, следовательно, не нужно публиковать какую-либо дату на веб-сайте.
Кто-нибудь видит (возможно очевидную) проблему в моем примере кода?
Проект основан на ASP.net MVC 5 6 использованием DNX.
Я уже установил некоторые точки останова, чтобы увидеть, действительно ли контроллер вызван. И это. Я прошел через несколько методов с отладчиком без каких-либо проблем. Кроме того, в окне вывода не отображается никаких ошибок или sth. как это.
Вы пробовали переходить через код? Установите контрольную точку в 'Index()', и вы должны найти, где происходит ошибка. Возможно, вы даже не попали в ваш контроллер. –
Его очень общая ошибка. вы можете попробовать поставить некоторые точки останова (индексный метод) и посмотреть, будет ли он запущен.вы также можете проверить инструменты разработчика (сеть), чтобы проверить адрес URL. Также проверьте определение метода класса Routeconfig. Это те моменты, о которых я могу думать сейчас. – riteshmeher
Показать запуск. Это может быть проблема конфигурации при запуске. Вы не очень подробно рассказали о проблеме. 500 может быть что угодно. Вы начали с пустого проекта, поэтому есть основания полагать, что вы, возможно, оставили что-то, что было необходимо для запуска приложения. – Nkosi