【问题标题】:can't the function code block access variables in razor code block?功能代码块不能访问剃刀代码块中的变量吗?
【发布时间】:2014-10-20 23:51:27
【问题描述】:

我已经在页面顶部的 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:名称 'name' 不存在于 当前上下文”

但我不知道原因,我看了一个在线视频,它完全可以工作!!有人对此有解释吗?谢谢

【问题讨论】:

    标签: c# asp.net razor


    【解决方案1】:

    您需要在函数中声明变量,因为它们与顶部块中声明的变量处于不同的范围内。

    试试这个:

    @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");
                }
            }
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 2018-10-18
      • 2017-08-17
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多