2

作成、編集、削除用に作成されたビューがあります。エディター テンプレートを使用して、ビューにドロップダウンを表示し、テンプレートからの選択肢を表示しています。

私の見解(作成と編集の両方):

  <%: Html.EditorFor(model => model.Name) %> 
  //This is dropdown getting list from template.

問題: 名前フィールドが編集ビューに表示されません。

テンプレート ファイル (NameDropDown.ascx) は次のようになります。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl"%>    

<%= Html.DropDownList(
    "", 
    new SelectList(
        new SelectListItem[] 
        { 
              new SelectListItem { Value = "", Text = "" , Selected = true},
            new SelectListItem { Value = "Mark", Text = "Mark" },
            new SelectListItem { Value = "Jim", Text = "Jim" },
              new SelectListItem { Value = "Jason", Text = "Jason" }                                 
        },

        "Value", 
        "Text",
        Model
    )
) %>

私が持っているモデルクラスでは..

 [UIHint("NameDropDown")]
 public string Name { get; set; }

ビューの作成 - 名前のドロップダウンが適切にレンダリングされ、値を選択して DB に保存できます。リスト ビューに戻って [編集] をクリックすると、編集ビューにデータベースの名前の値が表示されません。(DB はテーブルに名前の値を持っています)。

4

1 に答える 1

0

テンプレートにモデル タイプ (文字列) がないようです:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl"%>

これを次のように変更します。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>"%>

ローカルテストを実行したところ、正常に動作しました。

于 2012-03-20T21:06:27.900 に答える