質問をして回答を受け取るシステムを構築しています。それぞれの質問には、それぞれ独自のタイプの質問があります。今のところString
とDateTime
に制限しましょう。ドメインでは、質問は次のように表される:MVC3 Editor動的プロパティ(または回避策が必要)
public class Question
{
public int Id
{
get;
set;
}
public string Caption
{
get;
set;
}
public AnswerType
{
get;
set;
}
}
、AnswerType
は
enum AnswerType
{
String,
DateTime
}
ここで実際に私がはるかに回答タイプを持っていることに注意してください。
MVCモデルを作成し、質問から派生し、回答プロパティを追加するアイデアを思いつきました。だからこのようなものでなければなりません:
public class QuestionWithAnswer<TAnswer> : Question
{
public TAnswer Answer
{
get;
set;
}
}
ここで問題を開始してください。 String
について
@model QuestionWithAnswer<dynamic>
<span>@Model.Caption</span>
@Html.EditorFor(m => m.Answer)
DateTime
のために、私は私自身のビューを定義するつもりです、私はここに簡単な入力を持つようにしたい:それはそのような何かにする必要があるので、私は、どんな質問を描画するための一般的な見解を持っていると思います。コントローラから具体的なモデルを渡すことができます。しかし、レンダリング段階では当然、最初はnull
(デフォルトはString
)であるため、特にString
の場合は何も描画せず、DateTime
の場合はすべてのプロパティの入力を描画しません。
私は問題の性質を理解していますが、エレガントな回避策はありますか?または、私は自分のロジックを実装する必要があります。エディタビューの名前はコントロールタイプ(大きな醜いswitch
)に基づいていますか?
ハ:
Application_Start
に登録されます!どのように私はこの過負荷を見逃すことができますか?完璧に近づいている、ありがとう!答えを受け入れる: –