Мне нужно иметь два аргумента в методе действия: один для идентификатора статьи и второй с моделью комментария.
Я написал форму в статье, в которой есть действие Articles / {id} / AddComment .
routes.MapRoute(
"Article_action", // Route name
"Articles/{id}/{action}", // URL with parameters
new { controller = "Articles" } // Parameter defaults
);
Моя форма:
<form action="@Url.RouteUrl( new { controller = "Articles", id = article.article_id, action = "AddComment" })" method="post">
<input type="hidden" name="article_id" value="@article.article_id" />
<textarea name="comment" rows="6" cols="30"></textarea>
<input type="submit" />
</form>
Вот мой ArticleViewModelResponse:
public class ArticleViewModelResponse {
public int article_id{set;get;}
public string comment{set;get;}
}
Мой метод действия:
[HttpPost]
public ActionResult DodajKomentarz( int id, ArticleViewModelResponse comment) {
//...
}
Вот проблема ... Аргумент комментария всегда имеет нулевое значение, но идентификатор верен. И если я изменю тип ArticleViewModelResponse на FormCollection, тогда комментарий будет иметь все переменные.
Где проблема? Почему FormCollection имеет события, а ArticleViewModelResponse - нет?
P.S. Конечно, это только пример, демонстрирующий мою проблему, и это не весь мой код. Так что игнорируйте каждую опечатку.