0

(免責事項/私の罪の告白: 私は長い間 Windows/デスクトップ アプリで立ち往生していたので、私の Web スキルはひどく未熟です。UI の問題で私のばかげた初心者の質問を許してください!)

ASP/MVC3-Razor UI を作成しています。私のモデルには、次のプロパティが含まれています(特に):

public string MyResponse { get; set; }
public IEnumerable<CannedResponse> CannedResponses { get; set; }

CannedResponseプロパティはどこにありますか

public int ID { get; set; }
public string Description { get; set; }
public string Text { get; set; }

UI には、ユーザーが応答テキストを入力するためのテキスト領域があります。または、時間を節約するために、ドロップダウンから返信定型文を選択することもできます。これにより、テキスト領域に定型返信テキストが入力されます。

モデルにすべての適切なデータを取得することに問題はありません。方法がわからない部分は、クライアント側イベントでドロップダウン リストを作成して、選択した定型応答の「テキスト」プロパティで「MyResponse」テキスト領域を埋めることです。これは Javascript で行う必要があると思いますが、Razor コードを Javascript に結び付ける方法がわかりません。私がこれまでに持っているものは次のとおりです。

@Html.DropDownList("cboCanned", Model.CannedResponsed.Select(c => 
  new SelectListItem { Value = c.ID.ToString(), Text = c.Description } ))
@Html.TextAreaFor(m => m.MyResponse)

JavaScript コードはどうあるべきですか? また、それをドロップダウン選択イベントに接続するにはどうすればよいですか?

4

1 に答える 1

0

MyResponse は選択の「値」を保持する変数であることを理解したので、これが役立つはずです:

 @Html.DropDownListFor(m => m.MyResponse , 
                              new SelectList{ Value = c.ID.ToString(), Text = c.Description },          
                              "Value", "Text", Model.MyResponse ))

第 1 パラメーター: DropDownList をバインドする値:
m => m.MyResponse(これは、Razor ビューに送信するモデルです)

2 番目のパラメーター: リスト(ビューをできるだけシンプルに保つためだけに、ビューでリストを作成しないように、モデルでリストを渡すことができることに注意してください)

3 番目のパラメーター: "Value"(リストの要素の値メンバーを保持するプロパティの名前)

4 番目のパラメーター: "Text"(リストの要素の表示メンバーを保持するプロパティの名前)

5 番目のパラメーター: Model.MyResponse(選択されたアイテムのを保持するモデル内の選択された変数)

この情報がお役に立てば幸いです...

于 2014-01-02T12:44:28.643 に答える