我已经在页面顶部的Razor代码块中初始化了一些变量,如下所示:
@{
var name=string.Empty;
var email=string.Empty;
var subject=string.Empty;
var message=string.Empty;
SetupValidation();
HandlePostRequest();
}
在页面底部(在html标记...之后),我创建了一些函数:
@functions
{
protected void HandlePostRequest()
{
if(IsPost)
{
name=Request[Fields.Name];
email=Request[Fields.Email];
subject=Request[Fields.Subject];
message=Request[Fields.Message];
if(Validation.IsValid())
{
using (var rep=new ContactLogRepository("usingClassCode"))
{
rep.Insert(name, email, subject, message);
}
Response.Redirect("success.cshtml");
}
}
}
}
但是在我看来,该函数无法访问上面的变量,因为我收到此错误:
“编译器错误消息:CS0103:名称'名称'在当前上下文中不存在”
但是我不知道原因,我看了一个在线视频,它在其中完全正常工作!有人对此有解释吗?谢谢
您需要在函数中声明变量,因为它们与顶部块中声明的变量的作用域不同。
试试这个:
@functions
{
protected void HandlePostRequest()
{
if(IsPost)
{
var name = Request[Fields.Name];
var email = Request[Fields.Email];
var subject = Request[Fields.Subject];
var message = Request[Fields.Message];
if(Validation.IsValid())
{
using (var rep=new ContactLogRepository("usingClassCode"))
{
rep.Insert(name, email, subject, message);
}
Response.Redirect("success.cshtml");
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句