Razor MVC的全球/本地范围

时间:2017-07-14 15:21:52

标签: asp.net-mvc razor

我最近开始钻研MVC Razor网络编程,而且我几乎坚持一些基础知识。

我有这段代码:

@ { 
using WebMatrix.Data;

WebGrid grid;
if (!Request.QueryString["partID"].IsEmpty())
{
    var backQuery = Request.QueryString["partID"];
    var db = Database.Open("SQLServerConnectionString");
    var baseQuery = "SELECT * FROM Person.Person WHERE FirstName =@0";
    var selectedData = db.Query(baseQuery, backQuery);
    grid = new WebGrid(source: selectedData);
}

grid.GetHtml(); }

因此,这背后的想法是拥有一个用户表单,它将从数据库获取内容并使用WebForms WebGrid功能将其显示回用户。

但是,我在上面的代码中遇到了问题,因为grid.GetHtml()会生成范围问题的错误。这是Razor语法范围的一些特定问题,因为这应该在普通的C#中工作,或者它是我缺少的其他东西。

感谢。

1 个答案:

答案 0 :(得分:1)

无法发表评论,因为我还没有声名鹊起。

这里有一些事情:

  1. 添加一些异常详情。
  2. 我们无法查看您在db.Query中使用的库以及您正在使用的WebGrid版本。
  3. 如果" partId"实际上是空的,你在空引用上调用方法。
  4. 使用MVC模式时,尽量避免在视图中执行此类逻辑。至少将它放在控制器(或者你喜欢那种东西的存储库)中,并将结果提供给模型。为模型提供默认数据。