点击提交按钮后URL更改如何保持原样而不更改?

问题描述 投票:0回答:1

我在 ASP.NET MVC razor 页面上工作。我面临网址更改的问题

Resignation/RequesterIndex?filenumber=103085

Resignation/Create

点击提交按钮后。

我需要像以前一样的URL,点击提交按钮后无需更改。请问该怎么做?

我的代码有什么问题导致这个问题?

我的代码详情如下

@model HR.WorkforceRequisition.Models.ResignationRequester

@{
    ViewBag.Title = "Requester Index";
}

@using (Html.BeginForm("Create", "Resignation", FormMethod.Post, new { enctype = "multipart/form-data", @id = "ResignationForm", style = "padding-top: 50px" }))
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
    @if (!string.IsNullOrEmpty(ViewBag.errorMsg))
    {
        <div class="alert alert-danger">
            @ViewBag.errorMsg
        </div>
    }

    @if (!string.IsNullOrEmpty(ViewBag.successMessage))
    {
        <div class="alert alert-success">
            @ViewBag.successMessage
        </div>
    }

    <div class="row">
        <div class="form-group col-md-6 hover">
            <div class="col-md-5">
                @Html.LabelFor(model => model.Dept, htmlAttributes: new { @class = "control-label" })
            </div>

            <div class="col-md-7">
                @Html.EditorFor(model => model.Dept, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Dept, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group col-md-6 hover">
            <div class="col-md-5">
                @Html.LabelFor(model => model.Designation, htmlAttributes: new { @class = "control-label" })
            </div>

            <div class="col-md-7">
                @Html.EditorFor(model => model.Designation, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Designation, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>

    <div class="row">
        <div class="form-group col-md-6 hover">
            <div class="col-md-5">
                @Html.LabelFor(model => model.ResignationSubmissionDate, htmlAttributes: new { @class = "control-label" })
            </div>

            <div class="col-md-7">
                @Html.EditorFor(model => model.ResignationSubmissionDate, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.ResignationSubmissionDate, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group col-md-6 hover">
            <div class="col-md-5">
                @Html.LabelFor(model => model.MobileNo, htmlAttributes: new { @class = "control-label" })
                <span class="text-danger"> *</span>
            </div>

            <div class="col-md-7">
                @Html.EditorFor(model => model.MobileNo, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.MobileNo, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-0 col-md-12">
            <input type="submit" value="Submit" class="btn btn-success" />
        </div>
    </div>
</div>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}


public ActionResult RequesterIndex(string filenumber)
{
    return View(resignationRequester);
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create(ResignationRequester resignationRequester)
{
    if (ModelState.IsValid)
    {
        try
        {
            Workforce.InsertToReignation(resignationRequester);
        }
        catch (Exception ex)
        {
            ViewBag.errorMsg = "Create not done correctly";
        }

        Session[SessionKeys.DirectManager] = GetEmployeeName(Convert.ToString(resignationRequester.DirectManager));
        Session[SessionKeys.LineManager] = GetEmployeeName(Convert.ToString(resignationRequester.LineManager));

        if (string.IsNullOrEmpty(ViewBag.errorMsg))
        {
            ViewBag.successMessage = "Resignation Submission form Created successfully";
        }
    }
    else
    {
        var errors = ModelState.Select(x => x.Value.Errors)
                               .Where(y => y.Count > 0)
                               .ToList();

        ViewBag.errorMsg = "Some required fields not added";
    }
}
           
return View(resignationRequester);

模特辞职请求者:

public class ResignationRequester
{
    [Required]
    [Display(Name = "Dept./ Branch: ")]
    public string Dept { get; set; }

    [Required]
    [Display(Name = "Designation: ")]
    public string Designation { get; set; }

    [Required]
    [Display(Name = "Resignation Submission Date: ")]
    [DataType(DataType.Date, ErrorMessage = "Date only")]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    public DateTime ResignationSubmissionDate { get; set; }

    [Required]
    [Display(Name = "Mobile No: ")]
    public string MobileNo { get; set; }
}
jquery ajax asp.net-mvc asp.net-mvc-4 c#-7.0
1个回答
0
投票

您的代码指定应将表单发布到“辞职”控制器的“创建”操作。这就是为什么您在提交表单后会看到 URL 更改为“辞职/创建”。

如果您在 Html.BeginForm 中指定“RequesterIndex”作为操作,表单将被发送回相同的 URL,并且单击提交按钮后您不应该看到 URL 发生变化。

© www.soinside.com 2019 - 2024. All rights reserved.