Asp.Net MVC 4,表单提交不起作用

时间:2015-10-19 09:48:46

标签: jquery asp.net asp.net-mvc asp.net-mvc-4

我有一个简单的Asp.Net MVC 4聊天应用程序。 在聊天会话下面初始化,我要求用户输入名称,一旦用户输入他的名字(以及下面代码中未显示的其他详细信息)并按下"Start Chat"按钮,操作方法{{1}从ChatForm控制器调用。

聊天表单的代码段如下所示:

Chat

@model WebSite.ViewModel.SimpleForm using (Html.BeginForm("ChatForm", "Chat", FormMethod.Post, new { id = "anonymousChat" })) { <div class='form-group'> @Html.LabelRequiredFor(m => m.Name) @Html.TextBoxFor(m => m.Name, new { @class = "form-control" }) </div> <input type="submit" class='btn btn-block start-anonymous-chat' value="Start Chat" /> } 方法如下所示:

ChatForm

现在问题是在执行此功能后,我在浏览器上找到以下行:

public ActionResult ChatForm(SimpleForm model)
{
      /*Some processing is done here and finally the below values are returned*/

      return Json(new { success = true, chatId=chatRequest.Id, compId=company.Id });
}

单击提交按钮时执行的方法是:

{"success":true,"chatId":10734,"compId":109}

此外,如果我尝试在方法$("#anonymousChat").submit(function () { debugger; if ($("#anonymousChat").valid()) $.ajax({ type: this.method, url: this.action, data: $(this).serialize(), success: function (data) { if (data.success) { /*show the chat modal*/ chatModal.modal("show"); } else { console.log("failed"); $("#anon-chat-form").html(data); } } }); return false; }); 中放置任何警报消息或控制台消息,则不会弹出更改,也不会显示控制台消息或正在打印。

之前有没有人受到类似问题的打击?你是怎么解决的?

提前致谢。

2 个答案:

答案 0 :(得分:1)

警报未显示,因此不会触发提交事件。

如果您的表单动态添加到DOM,那么$("#anonymousChat").submit(function () {}将不会触发任何内容,因为页面加载时表单尚不存在。 尝试更改这样的代码以避免此问题:

$(document).on('submit', '#anonymousChat', function (e) {
  debugger;
        if ($("#anonymousChat").valid())
            $.ajax({
                type: this.method,
                url: this.action,
                data: $(this).serialize(),
                success: function (data) {

                    if (data.success) {
                        /*show the chat modal*/
                        chatModal.modal("show");

                    }
                    else {
                        console.log("failed");
                        $("#anon-chat-form").html(data);
                    }
                }
            });

        return false;
});

如果stil不起作用,也许你的问题比这简单得多,也许你只是没有引用javascript文件。

答案 1 :(得分:0)

您的表单ID是&#34; myChat&#34;但是你引用了#34; anonymousChat&#34;在您的JavaScript中,相信这可能会导致您的问题