2011-07-29 9 views
2

私は、ユーザーが "newswire"の提出を完了することを簡単に示しています。フォームが作成ビューに読み込まれると、著者の入力には、ビューのテキストボックス内にログインしたユーザー名が自動的に入力されます。誰かが私が間違っていることについてコメントできますか?mvcのテキストボックスを自動入力する方法

私のモデル:私はいくつかのバリエーションを試してみましたが、まだそれを右に取得していない

<div class="editor-label"> 
     @Html.LabelFor(model => model.Author) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Author) 
     @Html.ValidationMessageFor(model => model.Author) 
    </div> 

:著者のセクションの形で

public class NewsWire 
{ 

     public int ID { get; set; } 
     public int VendorID { get; set; } 
     public DateTime Date { get; set; }   
     public string Subject { get; set; } 
     public string NewsItem { get; set; } 
     //public string Author { get; set; } 

     public string Author 
     { 
      get 
      { 
       return System.Web.HttpContext.Current.User.Identity.Name; 
      } 
     } 
    } 

私はこれを持っています。どんな助けもありがとう。

答えて

2

モデル:

public class NewsWire 
{ 
    public int ID { get; set; } 
    public int VendorID { get; set; } 
    public DateTime Date { get; set; }   
    public string Subject { get; set; } 
    public string NewsItem { get; set; } 
    public string Author { get; set; } 
} 

と、このビューは、現在ログインしているユーザーからAuthorプロパティを移入レンダリングするコントローラのアクション内部:

[Authorize] 
public ActionResult SomeAction() 
{ 
    var model = new NewsWire 
    { 
     Author = User.Identity.Name 
    }; 
    return View(model); 
} 
+0

ああ...私は間違った方法でそれを考えていた!助けてくれてありがとう! – MissioDei

0

OK、私は気づいた何かがいるあなたですエディタを作成していますが、作成者には{get; }をモデルに追加します。それは問題になるかもしれません!

プロパティとして保持する必要がありますが、オブジェクトを初期化するときに作成者を設定してください。

関連する問題