參數字典包含對於方法System.Web.Mvc的非可爲空類型'System.Int32'的參數'appId'的null條目'HLIT_TicketingMVC.Controllers.TicketController'中的'ContentResult CheckForInstaller(Int32)'。可選參數必須是引用類型,可爲空類型,或者聲明爲可選參數。
function SubmitAjax(url, message, successFunc, errorFunc) {
$.ajax({
type:'POST',
url:url,
data:message,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success:successFunc,
error:errorFunc
});
};
該數據對象被構建爲如下:
var message={"appId":application.val()};
我也嘗試了jsonified字符串:
var message="{'appId':"+application.val()+"}";
和
var message="{'appId':'"+application.val()+"'}";
我驗證該消息正在通過公關在嘗試發佈之前使用oper int值。在調試鼠標最近表明:{appId="6"}
控制器上的方法簽名是:
public ContentResult CheckForInstaller(int appId)
當我刪除從方法簽名的參數,但它擊中裏面的斷點,所以它要麼簽名需要某種屬性,或者我認爲這個消息沒有被正確構建。
當您將int更改爲字符串時,您會得到任何結果: public ContentResult CheckForInstaller(String appId)? – Pbirkoff 2010-02-17 15:20:13
那個應用程序對象是什麼?你確定它按預期工作嗎? – 2010-02-17 15:23:22
@çağdaş - 是的,當我將鼠標懸停在結果上時,它顯示了我期望的值。 @ Pbirkoff - 我沒有嘗試,但發現問題,接受下面的答案。 – Maslow 2010-02-17 15:49:12