首页 > 解决方案 > .NET Core 表单不显示 URL

问题描述

我有 2 个表格连续放置。这些是网址:

@using (Html.BeginForm("RemoveAll", "UserDocumentCategory", new { area = "Document" }))

@using (Html.BeginForm("AddAll", "UserDocumentCategory", new { area = "Document" }))

当我放置一个 URL.Action 时,两个 url 都会正常显示。

但是,当放置在我的 Html.BeginForm 中时,第一个表单消失了。我尝试使用正常的表单标签,但它仍然没有出现。

我唯一能想到的就是对 url 进行硬编码,但如果可能的话,我不想依赖这种方法。这是整个表单代码:

@model AppONE.Data.ViewModels.LocalUserViewModels.LocalUserViewModel
<div class="row">
    <div class="col-sm-6">
        <h4>Add All Document Categories to User</h4>
        <hr />
        @using (Html.BeginForm("AddAll", "UserDocumentCategory", new { area = "Document" }))
        {
            @Html.AntiForgeryToken()
            @Html.HiddenFor(x => x.BundleUserDetails.UserDetails.Id, new { id = "ra-id" })
            <div class="row">
                <div class="col-sm-12">
                    <div class="form-group">
                        <div class="clearfix">
                            <div class="pull-right">
                                <input type="submit" value="Add All" class="btn btn-primary" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        }
    </div>
    <div class="col-sm-6">
        <h4>Remove All Document Categories from User</h4>
        <hr />
        @using (Html.BeginForm("RemoveAll", "UserDocumentCategory", new { area = "Document" }))
        {
            @Html.AntiForgeryToken()
            @Html.HiddenFor(x => x.BundleUserDetails.UserDetails.Id, new { id = "ra-id" })
            <div class="row">
                <div class="col-sm-12">
                    <div class="form-group">
                        <div class="clearfix">
                            <div class="pull-right">
                                <input type="submit" value="Remove All" class="btn btn-primary" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        }
    </div>
</div>

路由:

app.UseMvc(routes =>
{
    routes.MapRoute(
      name: "areas",
      template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
    );
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");

});

控制器代码:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult RemoveAll(LocalUserViewModel Input)
{
    var res = userDocumentsCategories.RemoveAll(HttpContext, Input);
    if (res.Result == false)
    {
        TempData["Error"] = res.Message;
    }
    else
    {
        TempData["Success"] = res.Message;
    }
    return RedirectToAction("Index", "Users", new { Area = "Directory" });

}

AddAll 代码是相同的。

标签: c#htmlasp.net-corerazor.net-core

解决方案


推荐阅读