Razor 从客户端事件调用ms网页中的自定义@helper方法

Razor 从客户端事件调用ms网页中的自定义@helper方法,razor,webmatrix,Razor,Webmatrix,我有一个myPage.cshtml页面。我已经在myHelper.cshtml中编写了@helper方法(myMethod())。我可以在页面中内联调用helper方法(@myHelper.myMethod();),它工作得很好 如何从用户启动的事件(menu.item.click,button.click,link click)调用相同的方法 因为您的方法是在服务器端代码中执行的,所以您必须创建一种从客户端在服务器上调用代码的方法。例如,您可以有如下操作方法: [HttpPost] publi

我有一个myPage.cshtml页面。我已经在myHelper.cshtml中编写了@helper方法(myMethod())。我可以在页面中内联调用helper方法(@myHelper.myMethod();),它工作得很好


如何从用户启动的事件(menu.item.click,button.click,link click)调用相同的方法

因为您的方法是在服务器端代码中执行的,所以您必须创建一种从客户端在服务器上调用代码的方法。例如,您可以有如下操作方法:

[HttpPost]
public ActionResult MyHelperCaller()
{
    // Returns the contents of the 'myHelperCaller' view:
    return this.View();
}
…其中
myHelperCaller
视图包含对
myMethod()
helper方法的调用

然后,要从客户端调用它,您可以使用类似以下内容:

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

$(“#myHelperTrigger”)。单击(函数(){
//将myHelperCaller视图加载到myHelperTarget div中:
$(“#myHelperTarget”).load(“/MyController/MyHelperCaller”);
});

非常感谢您的意见!我正试图用“网页”编程模型来实现这一点,所以我实际上没有模型、视图和控制器本身来处理,只有页面,在这个模型中有什么方法可以做到这一点吗?啊,好的!很公平-我认为同样的答案也适用-你可以有一个网页,它除了调用你的helper方法之外什么都不做,然后让你的JQuery函数调用它,比如
.load(“/myHelperCaller.cshtml”)
。是的,它可以工作,1]myHelperTrigger按钮调用2]my客户端javascript,在新窗口中打开3]myHelperCaller.cshtml页面(该页面仅包含对myHelper.myMethod()的调用,并且执行得非常完美),现在的问题是,我必须解决隐藏新窗口的问题,并且假设myMethod有任何参数,我也必须沿着链传递这些参数(也可以),但我只是觉得我正在用大锤敲击图钉,或者缺少明显的参数,以便更简洁地完成此操作。。。再次感谢史蒂夫的创意,我真的很感激!耶!很高兴它成功了-在JQuery包装的分区上调用
.load()
函数应该将结果加载到该分区中,而不是在新窗口中打开它。。。如果我的回答有帮助,你能接受吗?:)非常感谢你的提问。。。我也经历过同样的问题,几周来一直没有任何运气,但多亏了这个问题(和答案),我想我可以让它工作。