我想教自己使用在线来源的MVC 6,但他们并不总是完全覆盖我正在学习的东西。道歉,如果我似乎无知的东西应该是相当明显的。尝试查找模型时处理返回没有结果的最佳方法?
在这种情况下,我使用的将数据传递给视图:
public ActionResult Index(int? id)
{
foreach (Customer c in _cList)
{
if (c.Id == id)
{
return View(c);
}
}
return View(new Customer());
}
与空模型处理一个“无匹配的ID”一个foreach搜索的结果的最佳方式返回视图?
视图然后调用模型本身:
@if (Model.Id != 0)
{
<P> @Model.Name </P>
<P> @Model.Email </P>
}
else
{
<P> Nothing found!</P>
}
虽然它INFACT的工作,我想知道这是来处理这个正确的方式。它只是感觉有点...哈克。创建一个空模型只是为了返回一个不会导致空指针异常的对象?
虽然它不应该是必要的信息 - _cList被宣布为private readonly List<Customer> _cList = new List<Customer>()
作为内联伪数据库 - 对于那些谁是通过谷歌和好奇的人谁发现这一点。它使foreach工作,因此简化了搜索。在实际的SQL查询搜索中不够理想。标量函数可能是您必须使用的。
感谢您提供这样一个深刻而又翔实的回答。从现在开始,我将使用ViewModel以更安全的方式访问模型。 至于处理这些错误,我制作了一个名为empty的道具,并将其设置为“bool”,并以与设置错误相同的方式进行设置。 你的Controller的第一行使我意识到我也应该学习LINQ。 哦,这么多事情,这么短的时间。 – Bitz
我们生活的故事..你欢迎。 –
你正在将MVC与MVVM混为一谈。虽然它们都非常密切,但MVC并不需要ViewModels。不包含ViewModels并不坏,也不一定总是包含它们。它是情景式的,在某些情况下,ViewModels只会导致代码臃肿。 –