表单标记是否使变量超出范围?

时间:2017-01-08 21:13:59

标签: javascript c# razor

我有一个名为checker的变量,除非有表单标记,否则一切正常。之后变量变为空?为什么?以及如何修复它?

@{
                                foreach (var f in l)
                                {
                                    var theDate = f.date;
                                    var timeFrom = f.timeFrom;
                                    var timeUntil = f.timeUntil;
                                    var id = f.id;
                                    <div class="col-lg-offset-1"><b><u> Job Available</u></b><br /></div>
                                    <div><b>@theDate.ToLongDateString()</b></div>
                                <div class="col-lg-offset-1"><b>@timeFrom.ToShortTimeString() - @timeUntil.ToShortTimeString()</b></div>
                                        <br />

                                       var checker = false;

                                       foreach (var q in Model.Invitations)
                                       {
                                           if (q.CleanerId == Model.Cleaner.id)
                                           {
                                               checker = true;
                                              <div>@checker</div>
                                           }
                                       }

                                        <form action="/Authentication/TakeJob" method="post" role="form">
                                            <input class="invited" data-invited="@checker" type="hidden" name="invited" value="@checker" />
                                            <input type="hidden" name="JobId" value="@id" />
                                            <input type="hidden" name="CleanerId" value="@Model.Cleaner.id" />
                                            <button class="btn btn-success btn-lg acceptButton">I'll Take The Job</button>
                                        </form>
                                }
                                }

1 个答案:

答案 0 :(得分:0)

尝试并更改闭包的位置,您的示波器不需要如此宽,包括表格。

   @{
    var checker = false;
    foreach (var q in Model.Invitations)
    {
        if (q.CleanerId == Model.Cleaner.id)
        {
           <div>@checker</div>
           //here it works
        }
    }
}
    <form action="/Authentication/TakeJob" method="post" role="form">
          //here it is null 
        <input class="invited" data-invited="@this.checker" type="hidden" name="invited" value="@this.checker" />
        <input type="hidden" name="JobId" value="@id" />
        <input type="hidden" name="CleanerId" value="@Model.Cleaner.id" />
        <button class="btn btn-success btn-lg acceptButton">I'll Take The Job</button>
    </form>