【发布时间】:2021-11-04 14:46:24
【问题描述】:
我有一个 ASP.Net MVC 应用程序,它返回一个名为 Customer 的页面作为主页。所以在启动时我喜欢下面
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Customers}/{action=Index}/{id?}");
});
但是我现在有一个要求,即根据一个标准,我需要在客户页面为真时将其显示为主页,否则显示另一个页面。所以在CustomersController中我不确定如何返回另一个名为(AppNotAvailable.cshtml)的页面
public async Task<IActionResult> Index(string sortOrder, string searchString,
int? pageNumber, string currentFilter)
{
ViewData["CustomerParam"] = String.IsNullOrEmpty(sortOrder) ? "customer_desc" : "";
ViewData["LocationParam"] = String.IsNullOrEmpty(sortOrder) ? "location_desc" : "";
ViewData["CurrentFilter"] = searchString;
ViewData["CurrentSort"] = sortOrder;
if( Criteria == true)
{
return View(await PaginatedList<Customer>.CreateAsync(cust.AsNoTracking(), pageNumber ?? 1, pageSize));
}
else
{
// How to return to the AppNotAvailable page
}
}
我们可以从控制器返回两个不同的视图
【问题讨论】:
-
嗨@user4912134,您可以只返回视图名称,例如
return View("AppNotAvailable");,或整个视图路径,例如return View("/Views/Customers/ AppNotAvailable.cshtml");。不确定您的 AppNotAvailable.cshtml 是什么样的。但是如果这个视图需要一个模型,记得返回带有模型的视图:return View("AppNotAvailable",model);。
标签: c# asp.net-core model-view-controller entity-framework-core asp.net-core-mvc