Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 未找到ASP.Net MVC2控制器路径IIS7_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 未找到ASP.Net MVC2控制器路径IIS7

Asp.net mvc 未找到ASP.Net MVC2控制器路径IIS7,asp.net-mvc,Asp.net Mvc,我在IIS7(集成池)中托管了一个MVC2应用程序。我用来访问应用程序的链接如下 http://88.88.88.88/testapp/ 我正在从我的“HomeController.cs”调用PrintApp函数,如下所示 var printForm = jQuery('<form>', { 'method' : 'post', 'action' : 'Home/PrintApp' .....}); printForm .submit(); 但这也给了我

我在IIS7(集成池)中托管了一个MVC2应用程序。我用来访问应用程序的链接如下

http://88.88.88.88/testapp/
我正在从我的“HomeController.cs”调用PrintApp函数,如下所示

var printForm = jQuery('<form>', {
    'method' : 'post',
    'action' : 'Home/PrintApp'
     .....});
printForm .submit();
但这也给了我同样的错误。唯一有效的是

'action' : 'http://88.88.88.88/testapp/Home/PrintApp'

这不是最好的方法。有人能确定问题是什么吗?

如果JavaScript是从视图中调用的,您可以改为使用它(这假设Razor视图引擎…对于ASPX,它将略有不同):


将此行“操作”:“Home/PrintApp”更改为:

'action' : $('#printAppUrl').val();
然后,在视图的服务器端,将名为
printAppUrl
的隐藏字段的值设置为:

@Html.Hidden("printAppUrl", Url.Action("PrintApp", "Home"));
另一个尝试是:

'/Home/PrintApp'

我这么说是因为我自己在一个测试应用程序中生成了一个表单,这就是URL的样子。

您在某个事件中编写了以下javascript代码,该事件是在与某个DOM元素(如按钮或锚)交互时触发的,对吗

例如:

$('#foobar').click(function() {
    var printForm = jQuery('<form>', {
        'method' : 'post',
        'action' : 'Home/PrintApp'
        .......
    });
    printForm.submit();
});
然后:

$('#foobar').click(function() {

    var printForm = jQuery('<form>', {
        'method' : 'post',
        'action' : $(this).data(url)
        .......
    });
    printForm.submit();

});
$('#foobar')。单击(函数(){
var printForm=jQuery(“”{
'method':'post',
'操作':$(此).data(url)
.......
});
printForm.submit();
});

问题在于绝对路径和相对路径。其中一个应该适合您:

var printForm = jQuery('<form>', {
'method' : 'post',
'action' : '~/Home/PrintApp'
 .....});
printForm .submit();
var printForm=jQuery(“”{
'method':'post',
“操作”:“~/Home/PrintApp”
.....});
printForm.submit();

var printForm=jQuery(“”{
'method':'post',
“操作”:“../../Home/PrintApp”
.....});
printForm.submit();

试试“~/Home/PrintApp'@JeevanJose-这在.js文件中有效吗?我会试试..它现在有效..不确定它是什么..我将应用程序池更改为classic,然后返回到integrated..可能是其他东西..它肯定有效,我几乎高估了它,但它感觉像是一个“肮脏”的解决方案。@vinayan,您也可以尝试
'/Home/PrintApp'
'/Home/PrintApp'
$('#foobar').click(function() {
    var printForm = jQuery('<form>', {
        'method' : 'post',
        'action' : 'Home/PrintApp'
        .......
    });
    printForm.submit();
});
<button id="foobar" data-url="@Url.Action("PrintApp", "Home")">Click me</button>
$('#foobar').click(function() {

    var printForm = jQuery('<form>', {
        'method' : 'post',
        'action' : $(this).data(url)
        .......
    });
    printForm.submit();

});
var printForm = jQuery('<form>', {
'method' : 'post',
'action' : '~/Home/PrintApp'
 .....});
printForm .submit();
var printForm = jQuery('<form>', {
'method' : 'post',
'action' : '../../Home/PrintApp'
 .....});
printForm .submit();