所以我有这样的自定义路线:
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)
问题在于它不会让我调用“Comment”方法,而是将“Index”方法称为“Comment”,因为我的RouteConfig设置为“Id”。我如何实现这一目标?
抱歉英语不好,我们将不胜感激。
更新: 我尝试添加另一条路线,如'Dakshal Raijada'建议
routes.MapRoute( _
"ArticleComment", _
"Article/Comment", _
New With {.controller = "Article", .action = "Comment"} _
)
它可以工作,但由于某种原因,这会导致它在控制器之前调用我的模型构造函数,从而导致null模型。有什么想法吗?
答案 0 :(得分:0)
查看您的路由,无论什么
,您总是调用Index方法尝试使用:
routes.MapRoute( _
"Article", _
"Article/{id}", _
New With {.controller = "Article", .action = "Comment", .id = UrlParameter.Optional} _
)
评论是一项行动,而不是我。
希望有所帮助