我有一个视图,用户可以在其中就页面上正在播放的内容视频发表反馈意见。使用以下代码,我可以手动输入 UserID 和 ContentID 并毫无问题地保存到数据库中。
@using (Html.BeginForm("Screencast", "Media", FormMethod.Post, new { id = "form", enctype = "multipart/form-data" }))
{
<div class="row">
<div class="six columns">
<div class="row">
<div class="six columns">
@Html.LabelFor(c => c.FeedbackComment.UserID)
@Html.TextBoxFor(c => c.FeedbackComment.UserID)
</div>
<div class="six columns">
@Html.LabelFor(c => c.FeedbackComment.ContentID)
@Html.TextBoxFor(c => c.FeedbackComment.ContentID)
</div>
<div class="row">
<div class="twelve columns">
@Html.LabelFor(c => c.FeedbackComment.FeedbackString)
@Html.TextAreaFor(c => c.FeedbackComment.FeedbackString)
</div>
</div>
</div>
</div>
</div>
<input type="submit" value="Submit button" class="medium button bottom20"/>
}
但是,当用户在 HTTP 帖子之前的页面上时,我的模型中实际上有相关变量,称为:
Model.User.UserID
Model.SelectedItem.ContentID
我想将这些作为隐藏字段传递,但是当我尝试执行以下任一操作时:
@HtmlHiddenFor(c => c.FeedbackComment.UserID, @Model.User.UserID)
@HtmlHiddenFor(c => c.FeedbackComment.ContentID, @Model.SelectedItem.ContentID)
或者
@HtmlHidden("UserID",@Model.User.UserID)
@HtmlHidden("ContentID",@Model.User.UserID)
然后这些值返回 null,尽管在发布之前填充了这些值。我读到了一种手动输入输入标签的解决方法,但是当我这样做时,@Using.HtmlBeginForm 返回一个错误,即未设置为对象的实例
有人可以帮助我了解如何使用发布之前模型中的值将这些值传递到同一页面。