Отказ от ответственности: Я новичок в ASP.NET Core / Razor / MVC и начинаю предварительный просмотр версии 3.0.
То, что я хочу сделать, это иметь «кнопку» на моей странице, которая добавляет новый пустой элемент в список, чтобы пользователь мог ввести некоторые значения. Из того, что я прочитал (и это немного), звучит так, будто наличие гиперссылки на контроллер является правильным подходом к этому. Я не могу заставить его работать, хотя. Вот мой код:
Ссылка, указывающая на контроллер / действие:
<a class="btn btn-success" asp-controller="Customer" asp-action="AddProduct">New Product</a>
Контроллер:
public class CustomerController : Controller
{
public void AddProduct()
{
var tmp = "";
}
public string Index()
{
return "This is my default action...";
}
public string Welcome()
{
return "This is the Welcome action method...";
}
}
Маршрутизация Startup.cs по умолчанию:
app.UseRouting(routes =>
{
routes.MapRazorPages();
});
При такой настройке, если я нажимаю кнопку пуска, я вижу изменение URL-адреса ниже, но больше ничего не происходит (например, точка останова не достигнута):
https://localhost:44358/Customers/Create?action=AddProduct&controller=Customer
Я попытался добавить маршрут к определенному коду UseRouting, например:
app.UseRouting(routes =>
{
routes.MapRazorPages();
routes.MapControllerRoute(
name: "Customer",
template: "{controller=Customer}/{action=Welcome}");
});
Но когда я это делаю, кажется, что он ломается, так как цвет текста меняется (с белого на черный), и ничего не происходит, когда я нажимаю на него.
Есть идеи, где я иду не так?
У меня есть еще один вопрос - как вы получаете доступ к данным модели из контроллера?
Заранее спасибо!