您可以张贴应该接受此帖子的方法的签名吗?
另外,我可能会因其他原因而收到相同的错误消息。我的YSOD谈到字典中不包含非空值的值。我获得YSOD信息的方法是在$ .ajax函数中放置一个断点,该断点如下处理错误返回:
<script type="text/javascript" language="javascript">
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
});
};
然后我的errorFunc javascript是这样的:
function(request, textStatus, errorThrown) {
$("#install").text("Error doing auto-installer search, proceed with ticket submission\n"
+request.statusText); }
使用IE,我去查看菜单->脚本调试器->在下一条语句处中断。然后触发将启动我的帖子的代码。这通常将我带到了jQuery库的深处,而不是我想要的地方,因为选择下拉列表会触发jQuery。所以我点击了StepOver,然后实际的下一行也会中断,这就是我想要的位置。然后,VS进入该页面的客户端(动态)模式,我在$("#install")
网上稍作休息,以便可以看到(使用鼠标悬停调试)请求中的内容,textStatus和errorThrown。请求。在request.ResponseText中,我看到了一条html消息:
<title>The parameters dictionary contains a null entry for parameter 'appId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ContentResult CheckForInstaller(Int32)' in 'HLIT_TicketingMVC.Controllers.TicketController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.<br>Parameter name: parameters</title>
因此,请检查所有内容,并发布控制器方法签名,以防出现问题