asp.net-mvc - 如果未找到数据,则返回同一视图并在同一视图中显示未找到消息
问题描述
我有搜索视图,用户在其中输入员工 ID,单击按钮后执行操作方法,用户被重定向到员工详细信息视图。
如果员工 ID 不匹配,我想保留相同的搜索视图并在 MVC 中显示一个带有未找到员工详细信息的标签,
请帮助在我的控制器中执行上述功能。
[HttpGet]
public async Task<ActionResult> Details(string firstName)
{
var empDetails = await _context.EmpDetails
.FirstOrDefaultAsync(m => m.FirstName == firstName);
if (empDetails == null)
{
// ???
}
return View(empDetails);
}
解决方案
拥有 ViewModel 类是一种很好的做法。制作一个,并使用它将域对象和消息传输到您的视图。像这样:
class EmpDetailsViewModel
{
public EmpDetail Emp { get;set; }
public string Message { get;set; }
}
[HttpGet]
public async Task<ActionResult> Details(string firstName)
{
var vm = new EmpDetailsViewModel();
var empDetails = await _context.EmpDetails
.FirstOrDefaultAsync(m => m.FirstName == firstName);
if (empDetails == null)
{
vm.Message = "Employee not found (or whatever)"
}
else
{
vm.Emp = empDetails;
}
return View(vm);
}
然后,在你看来,就做
if (Model.Emp == null)
{
<span>@Model.Message</span>
}
else
{
<div>Emp details stuff </div>
}
推荐阅读
- http - PPST request is working as GET Request in Globiflow
- python - Expense calculator gives result instead of asking user for input
- python - Runtime error in python (Hacker-rank practice question)
- sqlite - Why does SQLite consider larger number < smaller number to be true?
- python - Problem with the chromedriver - " executable needs to be in PATH. "
- kotlin - Kotlin: Split string whitespace delimiters
- javascript - Skipping a null element in Javascript
- javascript - How do I retrieve and assign a textbox value?
- python - ValueError: No gradients provided for any variable....in tensorflow V.2.1.0
- python - Return Name of first record df.iloc[0] using Python numpy