我有一个剃刀视图,根据模型返回的一些项目生成一个URL。当我创建一个没有任何if语句的url变量时,可以找到url变量并将其用作href。但是,当我有这个代码(使用if语句)时,它说:“名称'url'在当前上下文中不存在”。我怎样才能做到这一点?
@{
if(@Model.RootPageName != null)
{
var abstractPage = Content.GetPage<AbstractPage>(@Model.RootPageName);
var url = GenerateUrl(abstractPage);
}
else
{
var url = @Model.ButtonUrl;
}
}
<a href="@url" class="small button">@Model.ButtonText</a>
答案 0 :(得分:3)
只需移动url
即可在if
范围之外访问:
@{
string url;
if(@Model.RootPageName != null)
{
var abstractPage = Content.GetPage<AbstractPage>(@Model.RootPageName);
url = GenerateUrl(abstractPage);
}
else
{
url = @Model.ButtonUrl;
}
}
答案 1 :(得分:2)
如果声明嵌套在If / else语句中的变量,则不会为其余代码声明变量。
你有:
if(...)
{
var url = "foobar";
}
需要:
string url;
if(...)"
{
url = "foobar";
}
答案 2 :(得分:1)
尝试在&#34之外声明var url;如果&#34;如果你在里面宣称它的生活范围是否在&#34;如果&#34;或&#34;否则&#34;