0

提交按钮在 FORM 页面中不起作用。对于同一个问题,我已经阅读了许多解决方案,但无法解决问题。有人可以指出错误或建议更改...??

abc.cshtml

     @using (Ajax.BeginForm("ABC", "Queries", null, new AjaxOptions { HttpMethod = "Post",  UpdateTargetId = "content", LoadingElementId = "mask" }, new { enctype = "multipart/form- data", id = "intake_form", **@class** = "inline-form clear_both" }))
    {


     <div class="form_row">
        <div class="form_col1">
            <label class="QueryPageHeadings">
                Title*</label>
        </div>
        <div class="form_col2" style="z-index: 24; position: relative;" id="queryTitle_div">
    @Html.TextBoxFor(m => m.ABC.QueryTitle, new { @class = "text QueryFormTextBox" })
            <br />
            <div style="float: left">
                @Html.ValidationMessageFor(m => m.ABC.QueryTitle)
            </div>
        </div>

    </div>
   <div class="form_row">
        <div class="form_col1">
            <label class="QueryPageHeadings">
                Specific Notes</label>
        </div>
        <div class="form_col2" style="z-index: 21; position: relative;" id="specific_note_div">
            @Html.TextAreaFor(m => m.ABC.SpecificNotes, new { @class = "text QueryFormTextBox", style = "resize:none;height:160px;" })
            <br />
            <div style="float: left">@Html.ValidationMessageFor(m => m.ABC.SpecificNotes)</div>

        </div>
    </div>
    <div class="form_row">
        <div class="form_col1">
            <label class="QueryPageHeadings">
                Supporting Document
            </label>
        </div>
        <div class="form_col2">
            <div style="width:100%;float:left;">
            @Html.TextBoxFor(m => m.ABC.SupportDocument, new { @Id = "lblFileName", @readonly = "readonly" })
            </div>
            <div style="width:100%;float:left;">
            <button id='btnUploadPopup' type="button" style="float:left;" onclick="javascript:OpenFileUpload();">
                Upload Files</button>
                </div>

        </div>

    </div>
    <div class="form_row form_footer">                          
        <p class="indent">
                <input class="secondary button float_right" value="Submit" type="submit" name="button" />                                 
        </p>
    </div>
     }

控制器.cs

    [HttpPost]
    public ActionResult ABC(ABCViewModel model, string button)
    {

            String errorMessage = "";
            if (String.IsNullOrEmpty(errorMessage))
            {
                errorMessage = errorMessage + " Fields can not be empty.";
            }
            if (!String.IsNullOrEmpty(errorMessage))
            {
                Session["errorMessage"] = errorMessage;
                IABC data = new ABCViewModel();

                data.ABC.QueryTitle = model.ABC.QueryTitle;
                data.ABC.SpecificNotes = model.ABC.SpecificNotes;
                data.ABC.SupportDocument = model.ABC.SupportDocument;

                TempData["isEdit"] = false;
                return View("ABC", data);
            }
            else
            {
                Session["errorMessage"] = "";
                Session.Remove("errorMessage");
            }


            Session["fileName"] = null;
            return View();

    }  
4

3 回答 3

0

尝试使用带有 httppost 属性的 action 方法进行装饰

[HttpPost]
public ActionResult ABC(ABCViewModel model, string button)
{
   //your code
}

并将按钮类型更改为“提交”

<button type="submit">....</button>
于 2013-11-12T10:16:20.097 回答
0

由于您正在撰写 AJAX 帖子,因此您可能缺少所需的 java 脚本。_Layout.chtml在您的文件中添加以下内容。

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

你还需要用[HttpPost]属性装饰你的控制器方法。

PS:如果你不需要异步姿势,只需使用Html.BeginForm代替Ajax.BeginForm.

于 2013-11-12T10:47:45.000 回答
0

我已经“按原样”复制粘贴了您的代码,它对我有用。几乎 :) (由于编译器错误,我已将 ' **@class**' 更改为 ' ')。@class

尝试在空项目上重复它。也许你改变了什么?

于 2013-11-12T11:26:19.667 回答