0
我有一个myPage.cshtml页面。我在myHelper.cshtml中写了一个@helper方法(myMethod())。我可以在页面中调用helper方法(@ myHelper.myMethod();),它工作得很好。从客户端事件调用ms网页中的自定义@helper方法
我如何调用从用户发起的事件一样(menu.item.click,button.click,链接点击)同样的方法?
我有一个myPage.cshtml页面。我在myHelper.cshtml中写了一个@helper方法(myMethod())。我可以在页面中调用helper方法(@ myHelper.myMethod();),它工作得很好。从客户端事件调用ms网页中的自定义@helper方法
我如何调用从用户发起的事件一样(menu.item.click,button.click,链接点击)同样的方法?
因为你的方法在服务器端代码执行,你必须创建一个方法来调用从客户端服务器上的代码。例如,你可以有一个操作方法是这样的:
[HttpPost]
public ActionResult MyHelperCaller()
{
// Returns the contents of the 'myHelperCaller' view:
return this.View();
}
...其中myHelperCaller
视图包含您的myMethod()
助手方法的调用。
然后调用来自客户端你会使用类似:
<div id="myHelperTarget"></div>
<input id="myHelperTrigger" type="button" value="Call MyHelper" />
<script language="text/javascript">
$("#myHelperTrigger").click(function() {
// Loads the myHelperCaller view into the myHelperTarget div:
$("#myHelperTarget").load("/MyController/MyHelperCaller");
});
</script>
非常感谢您的输入史蒂夫!我正在尝试使用“网页”编程模型来实现这一功能,所以我真的没有模型,视图和控制器本身,只使用页面,是否有任何方法可以在该模型中执行此操作? – 2011-06-08 18:49:00
啊,好的!公平 - 我认为相同的答案适用 - 你可以有一个网页,除了调用你的帮助器方法,然后让你的JQuery函数调用,就像'.load(“/ myHelperCaller.cshtml”)'。 – 2011-06-08 18:54:47
所以是这样的作品,1] myHelperTrigger按钮调用它在新窗口中打开的3] myHelperCaller.cshtml第2页]我的客户端JavaScript(页面只包含调用myHelper.myMethod(),这完全执行),在现在的问题是,我有要解决隐藏的新窗口,并假设myMethod的有任何PARAMATERS我将不得不通过沿链的和(也做,能)但 我只是觉得我打大锤图钉或失踪显而易见,让这个做得更简洁一点... 再次感谢史蒂夫你的想法,我真的很感激它! – 2011-06-08 21:03:10