我的代码是在没有点击的情况下执行的(由于它的调用太早,导致了无效的指针),这是我的代码:
的Site.Master
<input type="submit" onclick="<%MvcApplication2.MvcApplication.hc.setLang("nl");%>" value="submit">
我有3个关于这种情况的问题
答案 0 :(得分:4)
是因为它执行&lt;%..%&gt;之间的代码在编译时?
多数民众赞成。
在传递给客户端之前,代码中断会在服务器端呈现。
如果您希望仅运行此onclick
的{{1}},则可以使用AJAX对该方法进行服务器端调用。
答案 1 :(得分:2)
正确 - 调用页面时正在评估传递给onclick的值,因为它是服务器端代码 - 您需要
我会创建一个返回设置语言的控制器方法,例如
控制器:
public string setlanguage(string id){
//set your language
return "some string value";
}
控制器(无效)
public void setlanguage(string id){
//set your language
}
HTML:
<input type="submit" onclick="setLanguage('nl');" value="submit">
<script type="text/javascript">
function setLanguage(lang)
$.post('@Url.Action("setlanguage","controllername")/' + lang,function(){
//no result has been returned
});
}
</script>
值得注意的是,如果您没有返回值,那么对页面语言的任何更改都可能在下次加载页面时才会反映出来 - 使用完整的回发可能会更好
答案 2 :(得分:0)
您应该放置在单击函数内部按钮时运行的代码,然后将函数名称传递给onclick属性。
通过这种方式,您可以轻松地知道您的代码是否正确。