Razor MVC 中的全局/本地范围



我最近开始深入研究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功能将其显示回用户。

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

谢谢。

无法发表评论,因为我还没有这样做的声誉。

这里有几件事:

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

最新更新