1

カスタム テンプレート~/Views/Shared/EditorTemplate/String.cshtmlがあり、例外が発生しているようです。

The model item passed into the dictionary is of type 'Proj.Models.EnumType', but this dictionary requires a model item of type 'System.String'.

にのみ発生するようEnumsです。テンプレートを削除すると、それも消えます。テンプレートが原因ではないようです。そこまで進んでいるとは思いません。私はそこに何でも入れることができ、例外は同じです。

だから...を持っている場合、 と@Html.EditorForを一緒に使うことはできませんか?modelenumcustom template

いくつかのコンテキスト:

モデル:

namespace Proj.Models
{

    public enum EnumType
    {
      A = 0,
      B = 1,
      C = 2,
    }

    public class Mod
    {
      [Required]
      public String Name;

      [Required]
      public EnumType Letter;
    }

}

意見:

@model Proj.Models.Mod
@Html.EditorFor(m=>m) // Exception happens here
4

1 に答える 1

1

これが私のために働くことがわかったものです。

templateで、モデルを null 許容列挙型として宣言していることを確認してください。次に、コードで、値があるかどうかを確認し、それに基づいて適切な書式設定を行います。

@inherits System.Web.Mvc.WebViewPage<Proj.Models.EnumType?>

@{
    Proj.Models.EnumType v = Model.HasValue ? Model.Value : {*some-default-value*};

    @Html.{*Your-formatter-here*};            
}
于 2013-06-13T14:46:32.583 に答える