在我的MVC _layout页面上,我有一个按钮,该按钮将一个带有iframe的面板放入其中。它使用带有剃刀的C#通过控制器和动作名称进行ajax调用
我想用另一个html页面的内容填充iframe,以便像ControllerNameActionName Help.html这样的格式显示当前屏幕的帮助。
如何获取Ajax调用的当前控制器名称和操作名称?
(或者是错误的方式做到这一点?)
在我的MVC _layout页面上,我有一个按钮,该按钮将一个带有iframe的面板放入其中。它使用带有剃刀的C#通过控制器和动作名称进行ajax调用
我想用另一个html页面的内容填充iframe,以便像ControllerNameActionName Help.html这样的格式显示当前屏幕的帮助。
如何获取Ajax调用的当前控制器名称和操作名称?
(或者是错误的方式做到这一点?)
在您看来,尝试把
<input id="IFramePath" type="hidden" value="@Url.Action("ActionMethodName", "ControllerName")"/>
,并在您的jQuery没有必要为Ajax。只要做到
$('#myIframe').attr('src', $('#IFramePath').val());
替代做法
Innclude在iframe
本身的路径
<iframe id="myIframe" style="display:none" src="@Url.Action("ActionMethodName", "ControllerName")"></iframe>
,并显示该按钮被点击
$('#myButton').click(function(){
$('#myIframe').show();
});
按钮和框架在布局页面上,所以整个网站只有1个按钮和1个框架。按下按钮应显示基于当前控制器/操作的帮助。您的解决方案需要在每个视图中包含一个按钮? –
你可以得到电流时在c#b页面请求网址Ÿ使用各种方法。
HttpContext.Current.Request.Url.AbsolutePath
表格的网址:http://host/controllername/methodname。那么你可以用c#来爆炸这个。获取控制器和方法名称段。现在使用这个,你可以发送ajax调用所需的控制器方法。
$("button").click(function(){
$.ajax({
url: "../ControllerName/ActionName",
success: function(result){
$("#div1").html(result);
}
error: function(e){
alert(e);
}
});
});
从前面给出的评论和回答中,我意识到当我问这个问题时,我并不完全明白我需要做什么。对不起。我现在明白了Ajax不是必需的,我可以从Window.Location.href
的JavaScript/jQuery的我都似乎工作得到控制器和动作的值是您使用剃刀如下所示
$('#helpButton').click(function() {
$("#helpPanel").load(getHelpPageName());
$("#helpPanel").animate({ height: 'toggle' }, 500);
});
function getHelpPageName() {
var page = "Home";
var params = window.location.href.toString().split(window.location.host)[1];
//remove the '/' that will be the 1st character
params = params.substring(1);
if (params.length == 0) {
return page + ".html"; // no params - it's home page
}
var paramList = params.split('/');
if (paramList.length === 1) //controller, no action
page = paramList[0];
else if (paramList.length >= 2) //controller and action - ignore rest
page = paramList[0] + paramList[1];
return page + ".html"; // home page - no controller, no action
}
? – AmmarCSE
对不起,我正在使用C#和剃刀 –
让我知道这是你想要的还是你需要更多的帮助 – AmmarCSE