asp.netCore MVC:带有通用模式的MapControllerRute不允许发布

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

public class ProductController : BaseStoreController { [HttpGet] public IActionResult Index(string url) { .... } [ValidateAntiForgeryToken] [HttpPost] public IActionResult AddProduct(ProductViewModel model) { .... } }

@using (Html.BeginForm("AddProduct", "Product", FormMethod.Post))
{
    ......

    <button type="submit" class="btn btn-danger ms-2">Add</button>
}
通用路由迫使所有
GET
POST

请求达到

Index
GET
动作。我尝试在通用路由声明上方添加以下(不同的变化)(不同的变体),但仍触发
Index
GET
动作。我还尝试创建一个
Index
动作,并具有表单
POST
而不是
POST
动作,但仍然始终触发
AddProduct
Index
动作在任何
GET
GET上始终触发
方法
任何帮助将不胜感激。
POST
    
如果您是“ addproduct”方法称为“索引”,我希望您的第一条路线对您有用。另外,如果您愿意使用不同的URL“/product/addproduct”,我希望您的addproduct方法可以通过第二个路线示例来调用。

您说您尝试了这两种方法,所以我认为[valyateantiforgerytoken]可能正在失败,并且实际上导致重定向到 /索引,这将是一个get。我将使用Telerik Fiddler(或可能是Chrome或Edge的网络选项卡)来查看实际上是否存在重定向。我可能还会尝试简短评论一下该程序。 如果事实证明,反伪造造成问题的情况是,您必须阅读如何在视图中正确渲染您的表格(我不记得它是如何完成的)。

mark

	
c# routes asp.net-core-mvc asp.net-mvc-routing
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.