私はasp.net MVC 3でWebアプリケーションを開発しています。私はそれに非常に新しいです。かみそりを使用してビューで、私はいくつかのローカル変数を宣言し、ページ全体でそれを使用したいです。どうすればこれができますか?
次のようなことができるのはどちらかといえば簡単です。
@bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
@if (isUserConnected)
{ // meaning that the viewing user has not been saved
<div>
<div> click to join us </div>
<a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
</div>
}
しかしこれはうまくいきません。これは可能ですか?
私はあなたがかなり親密だったと思います、これを試してください:
@{bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);}
@if (isUserConnected)
{ // meaning that the viewing user has not been saved so continue
<div>
<div> click to join us </div>
<a id="login" href="javascript:void(0);" style="display: inline; ">join here</a>
</div>
}
変数は同じブロック内にあるべきだと思います。
@{bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
if (isUserConnected)
{ // meaning that the viewing user has not been saved
<div>
<div> click to join us </div>
<a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
</div>
}
}
また使用することができます:
@if(string.IsNullOrEmpty(Model.CreatorFullName))
{
...your code...
}
コード内に変数は必要ありません
コードがループするにつれて増加するint型の変数を探しているなら、このようなものを使うことができます。
@{
int counter = 1;
foreach (var item in Model.Stuff) {
... some code ...
counter = counter + 1;
}
}
OPの問題に対する直接的な答えではありませんが、それはあなたを助けるかもしれません。あなたは問題なくスコープ内のいくつかのhtmlの隣にローカル変数を宣言することができます。
@foreach (var item in Model.Stuff)
{
var file = item.MoreStuff.FirstOrDefault();
<li><a href="@item.Source">@file.Name</a></li>
}
ページ全体に渡ってアクセスされるようにvarを宣言する....ページのトップは通常うまくいきます。暗黙的または明示的にあなたの選択。
@{
//implicit
var something1 = "something";
//explicit
string something2 = "something";
}
@something1 //to display on the page
@something2 //to display on the page