我对编程的有限了解需要,为了使用非静态方法,您需要首先创建类的实例。为了使用静态方法,您只需将类名与方法名一起使用。我正在为 asp.net 做网页教程,我遇到了以下让我感到困惑的代码:
@{
var title = "";
var genre = "";
var year = "";
if(IsPost){
title = Request.Form["title"];
genre = Request.Form["genre"];
year = Request.Form["year"];
var db = Database.Open("WebPagesMovies");
var insertCommand = "INSERT INTO Movies (Title, Genre, Year) Values(@0, @1, @2)";
db.Execute(insertCommand, title, genre, year);
Response.Redirect("~/Movies");
}
}
我查找了 Response 类的 Redirect 方法,它没有列为静态方法,我认为这意味着它是一个实例方法。如果不首先创建 Response 类的实例,我如何才能使用它?
最佳答案
Razor 是 ASP.Net MVC 的 View 引擎插件。
它为您做了很多事情,例如为您的页面 View 动态生成代码。这意味着有一个基础 WebViewPage附加到您的每个页面的类,Razor 自动派生并与您在 @{ ... }
部分中的代码合并。
这使您可以访问几个有助于与浏览器通信的属性,例如 Response , IsPost , Request等。我选择这三个只是因为它们在您发布的代码中使用。
因此,例如,无需编写像 MyPage.Response.Write("test!");
这样的代码,您可以简单地引用页面的 Response
属性直接上课。例如:Response.Write("test!");
Razor 足够聪明,知道 Response
是底层类的属性并使用它。
Response
属性是 HttpResponse
类型的对象。响应对象具有将数据(例如 html)写回客户端(浏览器)所需的一切。
Request
属性是 HttpRequest
类型的对象,它使您可以访问从客户端发送到服务器的信息。例如 Request.Form
是 html 输入控件数据(文本框、单选框、下拉列表...)的集合。
IsPost
是一个简单的 boolean
,它告诉您页面是回发还是初始获取。
关于c# - 当我没有实例化 "Response.Redirect"时,如何从 Razor 网页使用 "Response"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560671/