HTML 单击时无需单击即可触发代码

本文关键字:单击 代码 HTML | 更新日期: 2023-09-27 18:37:04

我的代码在没有单击它的情况下执行(这会导致空指针,因为它调用得太早了),这是我的代码:

网站.大师

<input type="submit" onclick="<%MvcApplication2.MvcApplication.hc.setLang("nl");%>"    value="submit">

我对这种情况有 3 个问题

  • 是介于 <% 之间的代码。%> 在编译时执行?
  • 这甚至会起作用吗(将 <%%> 放入 onclick)?
  • 有没有更好的方法来调用我的 C# 类中的方法?

提前感谢

HTML 单击时无需单击即可触发代码

是因为它执行的代码在 <% 之间..%> 在编译时?

没错。

代码中断在传递到客户端之前先呈现服务器端。

如果只想运行此onclick input,则可以使用 AJAX 对该方法进行服务器端调用。

正确 - 调用

页面时正在评估传递给onclick的值,因为它是服务器端代码 - 您需要

我会创建一个控制器方法,例如返回语言集

控制器:

public string setlanguage(string id){
//set your language
return "some string value";
}

控制器(带空)

public void setlanguage(string id){
//set your language
}

目录:

<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>

值得注意的是,如果您不返回值,那么对页面语言的任何更改都可能直到下次页面加载时才反映 - 最好使用完整回发

您应该将单击按钮时运行的代码放在函数中,然后将函数名称传递给 onclick 属性。

通过这种方式,您可以轻松知道您的代码是否正确。

相关文章: