0

クラスライブラリに次のクラスがあります

  public class ExpenseDTO
{
    [Key]
   public Int32 ExpenseId { get; set; }
   public Int32 ExpenseTypeId { get; set; }

    [Display(ResourceType = typeof(Resource), Name = "ExpenseDate")]
    [Required(ErrorMessageResourceType = typeof(Resource), ErrorMessageResourceName = "ExpenseDataRequired")]
    [DataType(DataType.Date,ErrorMessageResourceName="InvalidDateFormat"
        ,ErrorMessageResourceType=typeof(Resource))]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
   public DateTime ExpenseDate { get; set; }

    [MaxLength(200, ErrorMessageResourceType = typeof(Resource), ErrorMessageResourceName = "ExpenseNoteMaxLength")]
    [Display(ResourceType = typeof(Resource), Name = "ExpenseNote")]
   public  String ExpenseNote { get; set; }

    [Required(ErrorMessageResourceType = typeof(Resource), ErrorMessageResourceName = "ExpenseAmountRequired")]
    [Display(ResourceType = typeof(Resource), Name = "ExpenseAmount")]
    public decimal ExpenseAmount { get; set; }

    public ExpenseDTO()
    {
        ExpenseNote = String.Empty;

    }

}

次の定義を持つExpenseEditViewという名前のクラスを持つasp.net MVC 4プロジェクトもあります

public class ExpenseEditView
{
    public ExpenseDTO Expense { get; set; }
    public IEnumerable<SelectListItem> ExpenseTypeList { get; set; }
    public ExpenseEditView(ExpenseDTO Expense, IEnumerable<SelectListItem> ExpenseTypeList)
    {
        this.Expense = Expense;
        this.ExpenseTypeList = ExpenseTypeList;
    }
}

私のコントローラーの create メソッドには、次の行があります。

public ActionResult Create()
    {
        ExpenseEditView ExpenseEdit = new ExpenseEditView(new ExpenseDTO(), GetExpenseTypeList());
        return View(ExpenseEdit);
    }

「作成」アクションに Asp.net mvc Scaffolding テンプレートを使用しようとすると、クラス ExpenseDTO 内のプロパティのコードを生成せずに空のビューが作成されましたか?

テンプレートが ExpenseEditView 用に自動的に生成されるように、不足しているものを教えてください。

4

2 に答える 2

2

ビューに「作成」という名前を付けることは、作成アクションを取得するものではありません。代わりに、次のことを行う必要があります。

  1. 「厳密に型指定されたビューを作成する」チェックボックスをオンにします

  2. モデル クラスを選択します。使用したいテンプレートのドロップダウンが有効になります。

  3. ドロップダウンを「空」(取得したもの) から「作成」に変更します。

それはあなたの問題を解決します。

関連: https://stackoverflow.com/a/16072432/176877

于 2013-04-18T00:27:00.363 に答える