0

モデルから簡単なニュース (タイトル、作成者、メッセージ) を返すページを作成しました。コメントを追加する簡単なフォームも作成したいと思います。ニュースとコメントを追加するフォームは同じビューにあります。ユーザーが認証されている場合、フォームを少しスマートにして、コメントのメッセージ用に 1 つのテキスト ボックスのみを返すようにしたいと考えています。このフォームは、ニュースの 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>
} 
4

1 に答える 1

0

あなたのビューでは、あなたのモデルがそれを持っている場合、あなたはIDで非表示を追加することができます:

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

または、他のあまり強く型付けされていないバージョンを使用できます。

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

あなたの質問では、表示する情報 (ID) がどこにあるのか明確ではありません...投稿するには、このデータに入力を配置する必要があることは確かです (Hidden は、ユーザーからフィールドを非表示にすることができます) )。

于 2013-07-02T23:41:04.893 に答える