是否可以将c#变量插入内联javascript函数?
我使用razor传递选择框ID。
<select id="@itemid" style="float:right" class="input" onchange="window.location.href='@url3' + 'booking/' + '?d=' + 'this.form.@itemid.options[this.form.@itemid.selectedIndex].value">
</select>
以上不起作用。我得到一个&#34;不包含&#39; form&#39;&#34;的定义。错误。
答案 0 :(得分:1)
试试这个
onchange='@("string.format("window.location.href='{0}' + 'booking/' + '?d=' + 'this.form.{1}.options[this.form.{1}.selectedIndex].value", @url3, @itemid))'
答案 1 :(得分:0)
是。您可以在javascript中使用Razor语法,只要它在视图文件中即可。
我更喜欢保持标记干净而没有行为(关注点分离)并以不引人注目的javascript方式保持该行为。我会保留HTML 5 数据属性 来设置url3
变量的值。
<select id="@itemid" style="float:right" class="input" data-targeturl="@url3">
</select>
并在javascript中,使用change
类收听SELECT元素的.input
事件并重定向到新页面
$(function(){
$("SELECT.input").change(function(e){
var _this=$(this);
var newUrl=_this.data("targeturl")+"/booking?d="+_this.val();
window.location.href=newUrl;
});
});