在Net .Core中提交Ajax表单

时间:2018-09-03 11:50:00

标签: c# asp.net-mvc asp.net-core

我现在使用简单格式的jQuery-Steps lib创建了向导。没有提交按钮。我通过jQuery在完成步骤中提交表单。

我已经在各处使用jQuery调用,并且已经包含了所有脚本,并且我需要用于上传图像和其他内容的表单,

什么也没有发生,不会调用控制器动作。

我刚开始在起始页面上使用查询字符串中的所有这些参数进行重定向。

赞:

https://localhost:44380/Dashboard?Name=Aaaa&Surename=Bbbb&City=Cccc

仪表板全部由Ajax和部分视图组成。从菜单中的人员选项,我将使用所有这些参数在仪表板的主视图上重定向。

这是表格:

<form asp-controller="PersonSettings" asp-action="SaveForm" data-ajax="true" data-ajax-method="POST" id="personForm" class="steps-validation wizard-notification">
    <!-- Step 1 -->
    <h6>Person</h6>
    <fieldset>
        <div class="row">
            <div class="col-md-12">
                <div class="form-group">
                    <label for="Name">
                        Person Name :
                        <span class="danger">*</span>
                    </label>
                    <input autocomplete="off" type="text" class="form-control required" id="Name" name="Name">
                </div>
            </div>
            <div class="col-md-12">
                <div class="form-group">
                    <label for="Surname">
                        Person Surname:
                        <span class="danger">*</span>
                    </label>
                    <input autocomplete="off" type="url" class="form-control required" id="Surname" name="Surname">
                </div>
            </div>
            <div class="col-md-12">
                <div class="form-group">
                    <label for="City">
                        Person City:
                        <span class="danger">*</span>
                    </label>
                    <input autocomplete="off" type="url" class="form-control required" id="City" name="City">
                </div>
            </div>
        </div>
    </fieldset>
</form>

这是模型:

public class PersonDto {
    public string Name { get; set; }
    public string Surname { get; set; }
    public string City { get; set; }
}

这是PersonSettings控制器中的“动作”:

[Route("SaveForm")]
[HttpPost]
public IActionResult SaveForm(PersonDto Person) {
   //Do something with person model
   return Ok();
}

在完成按钮上,我以这种形式调用了jQuery Submit:

 $('#personForm').submit();

编辑:

我尝试了以下参数:

<form action="PersonSettings/SaveForm" method="post" id="personFrom" class="steps-validation wizard-notification">

这有效..很好,但是为什么第一种方法不起作用?因为我需要在Ajax中使用它并完成方法。

我找不到任何通过经典Ajax调用以表单形式发布图像的方法。因为我看不到图像路径(它不显示在浏览器中)。

1 个答案:

答案 0 :(得分:1)

我认为您没有安装Tag Helpers。如果它与action属性一起使用,则应与Tag Helpers属性一起使用。因为您使用的是Asp-Net-Controller属性。

https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.TagHelpers

请让我知道。