![](/img/trans.png)
[英]How to pass value from jQuery script into ActionLink in MVC razor view
[英]how to pass a razor value to a jquery function, in an mvc view
所以我試圖使用razor'@'表示法(在MVC-4視圖中)將參數傳遞給javascript函數但是我收到語法錯誤:“未終止的字符串常量”
還有另一種方法我應該寫這個嗎?
@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>
作為替代方案,您可以使用另一種方式在jQuery函數中獲取@item.ID
只需添加hiden span並在函數中獲取它的值。
說,你有清單:
<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');
的末尾添加了一個分號AssignButtonClicked('@item.ID');
要避免這種問題,您可以在c#代碼部分構建所有js函數調用。
代替:
<input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID')" />
使用:
@{
var assignFunctionCall = "AssignButtonClicked(" + item.ID + ")";
}
<input type="button" value="Assign" onclick="@assignFunctionCall " />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.