所以我有這樣的自定義路線:MVC自定義路由HttpPost失敗
routes.MapRoute(_
"Article", _
"Article/{id}", _
New With {.controller = "Article", .action = "Index", .id = UrlParameter.Optional} _
)
我的控制器:
Function Index(Optional ByVal Id As String = "") As ActionResult
If Id <> "" Then
//do something
Return View("ArticleDetail", model)
Else
Return View()
End If
End Function
<HttpPost()>
Function Comment(ByVal model As ArticleModel) As ActionResult
If ModelState.IsValid Then
//do something
End If
Return View("ArticleDetail", model)
End Function
筆者認爲:
Using Html.BeginForm("Comment", "Article", FormMethod.Post)
的問題是,它贏得不要讓我打電話給「評論」方法,而是調用「評論」的「索引」方法作爲「ID」,因爲我的RouteConfig設置。我如何實現這一目標?
對不起,英語不好,任何幫助將不勝感激。
更新: 我嘗試添加像「Dakshal Raijada」另一條路線建議
routes.MapRoute(_
"ArticleComment", _
"Article/Comment", _
New With {.controller = "Article", .action = "Comment"} _
)
它的工作原理,但由於某些原因,這導致其控制器之前打電話給我的模型構造導致空模型。任何想法?
調試路由問題是非常困難的。嘗試將@ haacked的[route debugger](https://www.nuget.org/packages/routedebugger/)添加到您的項目中以隔離問題。 –