同一命名空间.NET MVC中的重复操作名称

时间:2017-07-31 16:15:04

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

我对.NET MVC缺乏经验,当我看到我的问题时,所有与之相关的解决方案都是人们试图在不同名称空间中使用相同控制器名称的情况。我有一个在同一名称空间中有重复控制器名称的情况,我想知道是否有一个我似乎无法找到的非常简单的解决方案。

    [HttpPost]
    public IActionResult Insert(AddedItem model, ICollection<IFormFile> files)
    {

        _insertProductService.InsertData(model.Name, model.Author, model.Description, files);
        ModelState.Clear();
        ViewBag.SuccessMessage = "Item has been added!";
        return View();
    }

    [HttpPost]
    public IActionResult Insert(AddedCategory model, ICollection<IFormFile> files)
    {

        _insertCategoryService.InsertData(model.Name, model.Author, files);
        ModelState.Clear();
        ViewBag.SuccessMessage = "Category has been added!";
        return View();
    }

我收到以下错误:

  

AmbiguousActionException:匹配多个动作。下列   动作匹配路线数据并满足所有约束

我在部分视图中有两个从“插入”页面调用的表单。 “强制”应用程序选择适合IActionResult的最佳方法是什么? 我认为ActionConstraints可能是解决方案,但我很难理解它们。如果我对ActionConstraints是正确的,有人可以给我一个简单的例子,我可以在我的解决方案中进行调整吗?

按照建议在

下面插入.csh:

 @{
        ViewData["Title"] = "Add new";
    }
    @section Scripts2 {
        <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
    }
    <h2 class="page-header">@ViewData["Title"].</h2>
    <h3>@ViewData["Message"]</h3>
    <ul class="nav nav-tabs">
        <li class="active"><a data-toggle="tab" href="#product">Product</a></li>
        <li><a data-toggle="tab" href="#category">Category</a></li>
    </ul>
    <div class="tab-content">
        <div id="product" class="tab-pane fade in active">
            @await Html.PartialAsync("~/Views/Shared/ProductFormPartial.cshtml")
        </div>
        <div id="category" class="tab-pane fade">
            @await Html.PartialAsync("~/Views/Shared/CategoryFormPartial.cshtml")
        </div>
    </div>

0 个答案:

没有答案