使用@ Ajax.BeginForm()的asp.net mvc 3 jquery或ajax问题

我正在开发一个简单的CMS项目,我遇到了一堵墙。然后经过很长时间,将其炸毁。

出于某种原因,我在 @ Ajax.BeginForm 中的按钮没有激活回发。既没有完整的回发也没有ajax。我引用了脚本,并尝试调试jQery,检查控制器,视图,引用和模型中的每个字符都无济于事。 没有抛出任何错误或异常。

控制器动作:

[HttpPost]
public ActionResult Delete(int ID,int page=1)
{
  //some code...
  //...work, work, work...
}

查看细分:

@using (Ajax.BeginForm("Delete", "Client", new { page = Model.CurrentPageIndex }, ao))
{
    @Html.Hidden("clientID", item.ClientID)
    <input type="submit" value="Briši" name="brisi" />
}

错误:

    

参数字典包含'Info3CRM.WebUI.Controllers中方法'System.Web.Mvc.ActionResult Delete(Int32,Int32)'的非可空类型'System.Int32'的参数'ID'的空条目。 ClientController”。可选参数必须是引用类型,可空类型,或者声明为可选参数。     参数名称:参数

  

最后我决定禁用jQuery和Ajax并进行正常的回发。然后引发了异常。我试图在控制器中调用Action而没有所有必要的参数。

我的问题是:如果启用了jQuery和ajax,如何捕获这样的异常?

1

2 答案

您可以在某种客户端调试工具中看到此错误。

例如, Fiddler 会向您显示从服务器返回的响应 - 您可以使用Fiddler的WebView选项卡看到HTML响应。在这种情况下,HTML响应将显示ASP.NET黄色错误屏幕。

除了Fiddler,您还可以使用IE,Chrome或Opera中内置的浏览器调试工具 - 或下载 Firebug 对于FireFox。每个工具都有一个网络选项卡,可以显示所有ajax请求及其响应。

1
额外
不是问题 - 很高兴我能提供帮助。 ;)
额外 作者 nikmd23,
谢谢!!!信不信由你,我已经使用firebug多年,但主要是为了修复CSS,并尝试调试JS,我没有一直到Net标签.....
额外 作者 Zaak,

您的问题是您要POST的操作期望找到名为 ID 的参数,而没有这样的参数被POST。如果您更改隐藏输入的名称以匹配参数的名称,它应该都可以正常工作。

所以,改变

@Html.Hidden("clientID", item.ClientID)

@Html.Hidden("ID", item.ClientID)
0
额外
我现在知道,但我的问题是弄清楚这一点。由于没有抛出异常,我找不到问题。在这里很明显,在最初的问题中,错字是 i vs
额外 作者 Zaak,