【发布时间】:2020-02-29 06:32:39
【问题描述】:
我的 _partial.cshtml 中有以下表格:
<form class="form-inline text-center" asp-controller="Search" asp-action="Index">
@Html.TextBoxFor(m => new Search().SearchTerm, new { @class = "form-control search-term-box", placeholder = "Search keyword" })
<span class="btn btn-outline-primary mr-1 ml-1">Near</span>
@Html.TextBoxFor(m => new Search().Location, new { @class = "form-control search-term-box mr-2", placeholder = "Los Angeles, CA" })
<button class="btn btn-primary my-2 my-sm-0" type="submit">Search</button>
</form>
我的 SearchController.cs:
[BindProperty]
public Search SearchModel { get; set; }
[HttpPost]
public IActionResult Index(Search term, Search location = null)
{
SearchModel = new Search()
{
SearchTerm = term.ToString(),
Location = location.ToString()
};
//(Razor) Search Page with no page model
//Bind SearchModel to page
return View("Search");
}
在 ASP.Net MVC 中,我可以做这样的事情并且它可以正常工作,但是我如何让它与 ASP.Net Core Razor Pages 一起使用?单击提交按钮什么也不做。如果它在我的 Startup.cs 中很重要,我在 ConfigureServices 方法下有 services.AddMvc(o => o.EnabledEndpointRouting = false);,在 Configure 方法下有 app.UseMvc();。我是 Razor Pages 的新手,所以如果有更好的实现相同的约定,请提出建议。
编辑:我找到了解决方案,我在我的搜索控制器中添加了一个路由属性。尽管它是一个合适的解决方案,但我基本上将 MVC 约定应用于由 Razor Pages 组成的项目。如果有人可以提供适用于 Razor Pages 的解决方案,欢迎回答。
【问题讨论】: