Javascript 表单标记是否使变量超出范围?
我有一个名为checker的变量,在有表单标记之前,一切都正常。之后,变量变为空?为什么?我该如何修复它Javascript 表单标记是否使变量超出范围?,javascript,c#,razor,Javascript,C#,Razor,我有一个名为checker的变量,在有表单标记之前,一切都正常。之后,变量变为空?为什么?我该如何修复它 @{ foreach (var f in l) { var theDate = f.date; var timeFrom
@{
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>
}
}
@{
foreach(l中的变量f)
{
var theDate=f.日期;
var timeFrom=f.timeFrom;
var timeUntil=f.timeUntil;
var id=f.id;
工作可用
@theDate.ToLongDateString()
@timeFrom.ToShortTimeString()-@timeUntil.ToShortTimeString()
var checker=false;
foreach(模型中的var q)
{
if(q.CleanerId==Model.Cleaner.id)
{
checker=true;
@检查器
}
}
我接受这份工作
}
}
尝试更改闭包的位置,您的范围没有必要如此广泛,包括表单
@{
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>
@{
var checker=false;
foreach(模型中的var q)
{
if(q.CleanerId==Model.Cleaner.id)
{
@检查器
//它在这里工作
}
}
}
//这里是空的
我接受这份工作
您能显示生成的标记吗?这是您的全部代码吗?在html表单和上面的代码之间是否有任何删减?我觉得有些不相关的事情正在发生-特别是因为checker
不是一个可为空的布尔值。用所有代码完全按原样更新了问题。我将其切换为int值,结果成功了!谁知道为什么?!?!?!?!但它现在起作用了。谢谢你的帮助!!如果闭包不包含表单,那么它就无法识别表单中的@checker。似乎无法识别它?这似乎没用?