<input type="button" value="Delete" onclick="deleteMember(@Model.ID, '@ViewBag.returnUrl')"/>
該代碼有4個錯誤,2個語法錯誤和2個未終止的字符串常量。Asp.net Razor,語法錯誤 - onclick事件參數
我該如何解決這個錯誤?
<input type="button" value="Delete" onclick="deleteMember(@Model.ID, '@ViewBag.returnUrl')"/>
該代碼有4個錯誤,2個語法錯誤和2個未終止的字符串常量。Asp.net Razor,語法錯誤 - onclick事件參數
我該如何解決這個錯誤?
你可以打破它在一個Html.Raw
電話:
<input type="button"
value="Delete"
onclick="@(Html.Raw(String.Format("deleteMember({0}, '{1}')",
Model.ID,
Html.Encode(ViewBag.returnUrl)
)))"
/>
或指定給一個string
第一,然後引用,在屬性變量。
@{
String onclick = String.Format("deleteMember({0}, '{1}')",
Model.ID, Html.Encode(ViewBag.returnUrl));
}
<input type="button" value="delete" onclick="@onclick" />
第三種選擇是分開擔憂;保持標記和腳本分離。 Neil打我,但類似:
<input type="button" value="delete"
data-task="delete" data-id="@Model.ID" data-returnurl="@ViewBag.returnUrl" />
<!-- .... -->
<script>
var buttons = document.getElementsByTagName('INPUT');
for (var b = 0; b < buttons.length; b++){
if (buttons[b].type != 'button') continue;
switch (buttons[b].getAttribute('data-task') || ''){
case 'delete':
// read data-id & data-returnurl. Do something with them, and
// move on.
break;
// other actions
case 'add':
case 'update':
default:
break;
}
}
</script>
雖然這是奇怪的第一個括號食堂用剃刀(即使它在屬性的聲明)。我不會期望自己的這種行爲。
這是更多的VS比其他任何錯誤。
它認爲它仍然會像您期望的那樣呈現。
我喜歡布拉德的解決方案。
另一個推薦的選擇是將您的值彈出到data-dash屬性中,並使用類似jQuery的方法將數據破折號值傳遞給您的函數。
另一種方法,你可以做到這一點將分配值的JavaScript變量和使用它們的方法的調用。
<script>
var memberId = '@Model.ID';
var returnUrl = '@ViewBag.returnUrl';
</script>
<input type="button" value="Delete" onclick="deleteMember(memberId, returnUrl)"/>
您可以用這種方式太傳遞參數的功能
@Html.DropDownListFor(M => M.SubscriptionType,
new SelectList(Model.DefaultPlanName, "value", "displayText"),
new { @onclick = "Testnew('"+Model.CreationTime+"')",
@class = "form-control selectpicker" })
傳遞參數通過onclick事件很好的解決方案 – MSTdev 2013-11-11 13:16:26