从视图发送数据的MVC表单

时间:2013-07-02 23:02:40

标签: asp.net-mvc-4

我创建了一个页面,它返回模型中的简单新闻(标题,作者和消息)。我还想创建一个添加注释的简单表单。添加评论的新闻和表格是相同的观点。我希望我的表单有点聪明,如果用户通过身份验证,则只返回一个用于注释消息的文本框,否则此表单应显示另一个文本框,用户可以在其中写下他的名字。此表单还应发送新闻ID。该id存储在模型中。我试图返回一个作者名称,但你似乎错误地编码了。也许我会通过在控制器中添加@User名称来修复它,但我不知道如何从这个视图中将新闻ID传递给控制器​​。

@using (Html.BeginForm())
{ 
@Html.ValidationSummary(true) 
<fieldset> 
    <legend>Message</legend> 
    @if(Request.IsAuthenticated)
    { Model.Nadawca = @User.Identity.Name.ToString(); }
    else
    {

    <div class="editor-label"> 
         @Html.LabelFor(model => model.Nadawca)
    </div> 
    <div class="editor-field"> 
        @Html.TextBoxFor(model => model.Nadawca) 
        @Html.ValidationMessageFor(model => model.Nadawca) 
    </div>
    }
            <div class="editor-label"> 
  @Html.LabelFor(model => model.Tresc)
    </div> 
    <div class="editor-field"> 
        @Html.TextBoxFor(model => model.Tresc) 
        @Html.ValidationMessageFor(model => model.Tresc) 
    </div>
            <p> 
        <input type="submit" value="Send" /> 
    </p> 
    </fieldset>
} 

1 个答案:

答案 0 :(得分:0)

在您的视图中,如果您的模型具有ID,则可以添加带有ID的隐藏:

@Html.HiddenFor(model => model.idNews)

或者您可以使用其他不太强类型的版本:

@Html.Hidden("IdNews", ViewBag.idNews)

在您的问题中不清楚您在哪里可以显示信息(ID)...确定要发布的内容您需要对此数据进行输入(隐藏可以做到这一点隐藏来自用户的字段)。