だから私はかみそりの '@'表記(MVC-4ビューで)を使用してjavascript関数にパラメーターを渡そうとしていますが、構文エラーが発生しています: "Unterminated string constant"
これを書くべき別の方法はありますか?
@foreach (var item in Model)
{
...
<input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID')" />
}
私はこの答えと同じ構文を使用しました https://stackoverflow.com/a/5179316/1662619
編集:
これは単なる構文エラーであり、機能は引き続き機能します
これを試して
<input type="button" value="Assign"
onclick="@("AssignButtonClicked('"+item.ID+"')")" />
これを試して、
<input type="button" value="Assign" onclick="AssignButtonClicked(@item.ID);" />
スクリプト
<script type="text/javascript">
function AssignButtonClicked(obj) {
alert(obj);
return false;
}
</script>
別の方法として、他の方法を使用して@item.ID
をjQuery関数で。ヒデンスパンを追加して、関数で値を取得するだけです。
リストがあるとします:
<ul>
@foreach (var item in Model)
{
...
<li> <input type="button" value="Assign" onclick="AssignButtonClicked()" />
<span class="hidenID">@item.ID</span>
</li>
}
</ul>
スクリプトに追加するものより:
<script>
$(document).ready(function(){
$('.hidenID').hide() //**hide your span
});
function AssignButtonClicked()
{
...
var id = $(this).closest('li').find('.hidenID').text();
...
}
</script>
しかし、私の考えでは、jQueryのより良いアプローチは次のとおりです。
<ul>
@foreach (var item in Model)
{
...
<li> <input type="button" value="Assign" class="button" />
<span class="hidenID">@item.ID</span>
</li>
}
</ul>
<script>
$(document).ready(function(){
$('.hidenID').hide() //**hide your span
});
$(function(){
$('.button').click(function(){
...
var id = $(this).closest('li').find('.hidenID').text();
...
}
});
});
</script>
あなたが試した:
_<input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID');" />
_
JavaScript関数呼び出しAssignButtonClicked('@item.ID');
の最後にセミコロンを追加しました
この種の問題を回避するには、すべてのjs関数呼び出しをc#コードセクションでビルドします。
の代わりに:
<input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID')" />
つかいます:
@{
var assignFunctionCall = "AssignButtonClicked(" + item.ID + ")";
}
<input type="button" value="Assign" onclick="@assignFunctionCall " />