2012-12-27 53 views
0

錯誤同時呼籲在MVC中使用Ajax控制器動作AJAX在MVC:錯誤同時呼籲使用AJAX在MVC

請參閱AJAX功能,我用來調用方法在控制器

function ChangeEndDate(e) { 

    $.ajax({ 
       type: "POST", 
       url: "MonitoringSupplyOn/YourAction", 
       contentType: "application/json; charset=utf-8", 
       data:JSON.stringify({ 
          id:e.value 
          }), 
       success: function (result) { 
        alert(result); 
       }, 
       error: function (jqXHR, textStatus, errorThrown) { 
        alert("oops: " + textStatus + ": " + jqXHR.responseText); 

       } 
      }); 
} 
控制器動作在控制器

方法如下:

[HttpPost] 

    public ActionResult YourAction(string id) 
    { 
        return Json(new { id = "succsess" }); 

    } 

錯誤我得到如下: 哎呀:錯誤:

<head> 

    <title>Runtime Error</title> 

    <style> 

    body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 

    p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} 

    b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} 

    H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } 

    H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } 

    pre {font-family:"Lucida Console";font-size: .9em} 

    .marker {font-weight: bold; color: black;text-decoration: none;} 

    .version {color: gray;} 

    .error {margin-bottom: 10px;} 

    .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } 

    </style> 

</head> 



<body bgcolor="white"> 



     <span><H1>Server Error in '/RB.MONICA.Web' Application.<hr width=100% size=1 color=silver></H1> 



     <h2> <i>Runtime Error</i> </h2></span> 



     <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "> 



     <b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed. 

     <br><br> 



     <b>Details:</b> To enable the details of this specific error message to be viewable on the local server machine, please create a &lt;customErrors&gt; tag within a &quot;web.config&quot; configuration file located in the root directory of the current web application. This &lt;customErrors&gt; tag should then have its &quot;mode&quot; attribute set to &quot;RemoteOnly&quot;. To enable the details to be viewable on remote machines, please set &quot;mode&quot; to &quot;Off&quot;.<br><br> 



     <table width=100% bgcolor="#ffffcc"> 

      <tr> 

       <td> 


&lt;!-- Web.Config Configuration File --&gt; 



&lt;configuration&gt; 

    &lt;system.web&gt; 

     &lt;customErrors mode=&quot;RemoteOnly&quot;/&gt; 

    &lt;/system.web&gt; 

&lt;/configuration&gt; 



       </td> 

      </tr> 

     </table> 



     <br> 



     <b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the &quot;defaultRedirect&quot; attribute of the application&#39;s &lt;customErrors&gt; configuration tag to point to a custom error page URL.<br><br> 



     <table width=100% bgcolor="#ffffcc"> 

      <tr> 

       <td> 


&lt;!-- Web.Config Configuration File --&gt; 

&lt;configuration&gt; 

    &lt;system.web&gt; 

     &lt;customErrors mode=&quot;On&quot; defaultRedirect=&quot;mycustompage.htm&quot;/&gt; 

    &lt;/system.web&gt; 



&lt;/configuration&gt; 



       </td> 

      </tr> 

     </table> 



     <br> 



</body> 

</html> 

蔭總是收到錯誤消息在這裏。請告訴我出錯的地方。

糟糕:錯誤:

<head> 

    <title>The HTTP verb POST used to access path '/RB.MONICA.Web/MONICA/MonitoringSupplyOn/MonitoringData/MonitoringSupplyOnController/YourAction' is not allowed.</title> 

    <style> 

    body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 

    p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} 

    b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} 

    H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } 

    H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } 

    pre {font-family:"Lucida Console";font-size: .9em} 

    .marker {font-weight: bold; color: black;text-decoration: none;} 

    .version {color: gray;} 

    .error {margin-bottom: 10px;} 

    .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } 

    </style> 

</head> 



<body bgcolor="white"> 



     <span><H1>Server Error in '/RB.MONICA.Web' Application.<hr width=100% size=1 color=silver></H1> 



     <h2> <i>The HTTP verb POST used to access path '/RB.MONICA.Web/MONICA/MonitoringSupplyOn/MonitoringData/MonitoringSupplyOnController/YourAction' is not allowed.</i> </h2></span> 



     <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "> 



     <b> Description: </b>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 



     <br><br> 



     <b> Exception Details: </b>System.Web.HttpException: The HTTP verb POST used to access path '/RB.MONICA.Web/MONICA/MonitoringSupplyOn/MonitoringData/MonitoringSupplyOnController/YourAction' is not allowed.<br><br> 



     <b>Source Error:</b> <br><br> 



     <table width=100% bgcolor="#ffffcc"> 

      <tr> 

       <td> 

        <code> 

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

   </td> 

      </tr> 

     </table> 



     <br> 



     <b>Stack Trace:</b> <br><br> 



     <table width=100% bgcolor="#ffffcc"> 

      <tr> 

       <td> 

        <code><pre> 

[HttpException(0X80004005):用於訪問路徑' /RB.MONICA.Web/MONICA/MonitoringSupplyOn/MonitoringData/MonitoringSupplyOnController/YourAction '的HTTP謂詞POST不允許]

系統。 Web.DefaultHttpHandler.BeginProcessRequest(HttpContext的背景下,回叫的AsyncCallback,對象狀態)4170038

System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()405

System.Web.HttpApplication.ExecuteStep(IExecutionStep一步,布爾& completedSynchronously)+375

   </td> 

      </tr> 

     </table> 



     <br> 



     <hr width=100% size=1 color=silver> 



     <b>Version Information:</b>&nbsp;Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 



     </font> 



</body> 

+1

該錯誤消息不包含關於你有什麼問題infromation。請在您的web.config文件中將'customErrors'設置更改爲'customErrors mode =「Off」',然後再次嘗試新的錯誤消息。 – nemesv

+0

我做了customErrors mode = off。現在我正在獲得上述錯誤 – user1932193

回答

0

您指定JSON數據類型,但你傳遞一個字符串,JSON語法通過JSON.stringify。還要注意,這是一個僅限Firefox的函數。

請嘗試以下data PARAM

function ChangeEndDate(e) { 

    $.ajax({ 
       type: "POST", 
       url: "MonitoringSupplyOn/YourAction", 
       contentType: "application/json; charset=utf-8", 
       data: { id: e.value }, 
       success: function (result) { 
        alert(result); 
       }, 
       error: function (jqXHR, textStatus, errorThrown) { 
        alert("oops: " + textStatus + ": " + jqXHR.responseText); 

       } 
      }); 
} 
0

你可以試試這個修改後的代碼:

$阿賈克斯({ 網址: '@ Url.Action( 「YourAction」)',

 type: 'POST', 

     data: { id: "101" }, 

     async: false, 

     success: function (data) { 

      alert(data); 
     }, 

     error: function (jqXHR, textStatus, errorThrown) { 
      alert("oops: " + textStatus + ": " + jqXHR.responseText); 

     } 
    }); 

和In控制器

public JsonResult YourAction(string id) 
{ 
     return Json(new { id = "succsess" }); 
} 
1

請使用固定格式和JsonRequestBehavior。AllowGet:

[HttpPost] 
public JsonResult YourAction(string id) 
{ 
     return Json(new { id = "succsess" }, JsonRequestBehavior.AllowGet); 
} 
0
Iam always getting the below error while calling the method in a controller from view: 

oops: error: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>IIS 7.5 Detailed Error - 404.0 - Not Found</title> 
<style type="text/css"> 
<!-- 
body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;background:#CBE1EF;} 
code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;} 
.config_source code{font-size:.8em;color:#000000;} 
pre{margin:0;font-size:1.4em;word-wrap:break-word;} 
ul,ol{margin:10px 0 10px 40px;} 
ul.first,ol.first{margin-top:5px;} 
fieldset{padding:0 15px 10px 15px;} 

.summary-container fieldset{padding-bottom:5px;margin-top:4px;} 
legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;} 
legend{color:#333333;padding:4px 15px 4px 10px;margin:4px 0 8px -12px;_margin-top:0px; 
border-top:1px solid #EDEDED;border-left:1px solid #EDEDED;border-right:1px solid #969696; 
border-bottom:1px solid #969696;background:#E7ECF0;font-weight:bold;font-size:1em;} 
a:link,a:visited{color:#007EFF;font-weight:bold;} 
a:hover{text-decoration:none;} 
h1{font-size:2.4em;margin:0;color:#FFF;} 
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;} 
h4{font-size:1.2em;margin:10px 0 5px 0; 
}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif; 
color:#FFF;background-color:#5C87B2; 
}#content{margin:0 0 0 2%;position:relative;} 
.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;} 
.config_source{background:#fff5c4;} 
.content-container p{margin:0 0 10px 0; 
}#details-left{width:35%;float:left;margin-right:2%; 
}#details-right{width:63%;float:left;overflow:hidden; 
}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF; 
background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal; 
font-size:1em;color:#FFF;text-align:right; 
}#server_version p{margin:5px 0;} 
table{margin:4px 0 4px 0;width:100%;border:none;} 
td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:bold;border:none;} 
th{width:30%;text-align:right;padding-right:2%;font-weight:normal;} 
thead th{background-color:#ebebeb;width:25%; 
}#details-right th{width:20%;} 
table tr.alt td,table tr.alt th{background-color:#ebebeb;} 
.highlight-code{color:#CC0000;font-weight:bold;font-style:italic;} 
.clear{clear:both;} 
.preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;} 
--> 

</style> 

</head> 
<body> 
<div id="header"><h1>Server Error in Application "DEFAULT WEB SITE/RB.MONICA.WEB"</h1></div> 
<div id="server_version"><p>Internet Information Services 7.5</p></div> 
<div id="content"> 
<div class="content-container"> 
<fieldset><legend>Error Summary</legend> 
    <h2>HTTP Error 404.0 - Not Found</h2> 
    <h3>The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.</h3> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><legend>Detailed Error Information</legend> 
    <div id="details-left"> 
    <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Module</th><td>IIS Web Core</td></tr> 
    <tr><th>Notification</th><td>MapRequestHandler</td></tr> 
    <tr class="alt"><th>Handler</th><td>StaticFile</td></tr> 
    <tr><th>Error Code</th><td>0x80070002</td></tr> 

    </table> 
    </div> 
    <div id="details-right"> 
    <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Requested URL</th><td>http://localhost:80/RB.MONICA.Web/MONICA/MonitoringSupplyOn/MonitoringData/@Url.Action(&quot;YourAction&quot;)?id=101</td></tr> 
    <tr><th>Physical Path</th><td>D:\TOMAS-MONICA\SourceCode\Application\WebServer\MONICA\MonitoringSupplyOn\MonitoringData\@Url.Action(&quot;YourAction&quot;)</td></tr> 
    <tr class="alt"><th>Logon Method</th><td>NTLM</td></tr> 
    <tr><th>Logon User</th><td>apac\rkv1cob</td></tr> 

    </table> 
    <div class="clear"></div> 
    </div> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><legend>Most likely causes:</legend> 
    <ul> <li>The directory or file specified does not exist on the Web server.</li> <li>The URL contains a typographical error.</li> <li>A custom filter or module, such as URLScan, restricts access to the file.</li> </ul> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><legend>Things you can try:</legend> 
    <ul> <li>Create the content on the Web server.</li> <li>Review the browser URL.</li> <li>Create a tracing rule to track failed requests for this HTTP status code and see which module is calling SetStatus. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 
</fieldset> 
</div> 


<div class="content-container"> 
<fieldset><legend>Links and More Information</legend> 
    This error means that the file or directory does not exist on the server. Create the file or directory and try the request again. 
    <p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=404,0,0x80070002,7601">View more information &raquo;</a></p> 

</fieldset> 
</div> 
</div> 
</body> 
</html>