2011-07-14 6 views
0

私は最初のMVC3プロジェクトに取り組んでいます。私はSQLにlinqを使用しています。私はデータベースに "チュートリアル"と呼ばれるテーブルを1つ持っています。私はSQLデザイナにdbmlファイルを生成するlinqを使用します。バレー化のためのバディークラスを作成します。"Hiddeninput"タグ付きのプロパティを表示するには

  namespace Tut.DomainModel.Entities 
      { 
       [MetadataType(typeof(TutorialMetadata))] 
       public partial class Tutorial 
       { 
        public sealed class TutorialMetadata 
        { 
         [HiddenInput(DisplayValue = false)] 
         public int TutorialID { get; set; } 

         [Required(ErrorMessage = "Title is required")] 
         [StringLength(250, MinimumLength = 10, ErrorMessage = "Title must be between 10 and 250 characters")] 
         public string Name { get; set; } 

         [HiddenInput(DisplayValue = false)] 
         public DateTime PostDate { get; set; } 

        } 

       } 
      } 

私のTutorialsController.csファイルには、2つのアクションがあります。 1つは「List」であり、もう1つは「Post」である。

  public ViewResult List() 
      { 
       return View(reposi.Tutorials.ToList()); 
      } 

      public ViewResult Post() 
      { 
       return View(); 
      } 

      [HttpPost] 
      public ActionResult Post(Tutorial tutorial) 
      { 
       if (ModelState.IsValid) 
       { 
        reposi.Add(tutorial); 
        reposi.Save(); 

        return RedirectToAction("List"); 
       } 
       else 
       { 
        return View(); 
       } 
      } 

私は新しい投稿を作成するときに表示する必要はないので、非表示フィールドとして「PostDate」というラベルを付けました。私はそれに現在の日付を割り当てます。

が、私のリストページに、私は、その私はそれを修正する方法を

答えて

0

モデルクラスに「HiddenInput」で標識さしかしそのが表示されていない、ポスト日付を表示したいですか?

ビューごとに異なるビューモデルを使用します。したがって、view1では、隠しフィールドが必要な場合は、そのビューモデルを設計し、HiddenInput属性でプロパティを装飾します。また、view2に値を表示する必要がある場合は、この属性を持たない別のビューモデルを設計します。

結論:ビューごとに常にビューモデルを作成する必要があります。ビューモデルは所与のビューの要件に密接に結びついており、要件はビューごとに異なるビューモデルによって変化する。

最悪の場合は、異なるビューで同じビューモデルを再利用しようとすることです。現在遭遇しているような質問や問題が発生します。

+0

ご協力いただきありがとうございます。私は自分の質問を編集し、そこにコードを追加して私の質問を説明します。それを修正する方法を示すためにいくつかのコードを書くことができますか?私はそれを行う方法が無知です。 – qinking126

関連する問題