如何使用“预设回复”填充文本框?

时间:2013-02-01 12:05:39

标签: c# javascript asp.net-mvc-3 razor

(免责声明/承认我的罪过:我长时间陷入Windows /桌面应用程序,因此我的网络技能严重不足。所以请原谅我在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; }

在用户界面上,我有一个文本区域供用户输入他的回复文本。或者,为了节省时间,他可以从下拉列表中选择一个预设的响应,并且应该使用预设的响应文本填充文本区域。

我可以将所有正确的数据输入到模型中。我不知道该怎么做的部分是创建带有客户端事件的下拉列表,以使用所选预设响应的“Text”属性填充“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代码应该是什么,以及如何将其连接到下拉选择事件?

1 个答案:

答案 0 :(得分:0)

根据我的理解,MyResponse是保留所选内容的“值”的变量,所以这应该有所帮助:

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

第一个参数: 将DropDownList与哪个值绑定:
m => m.MyResponse(这是您的模型,您将其发送到Razor视图)

第二个参数: 您的列表(请注意,您可以在模型中传递列表,以便不在视图中创建它以保持视图尽可能简单)

第3个参数: "Value"(包含列表元素的值成员的属性的名称)

第4个参数: "Text"(包含列表元素的显示成员的属性的名称)

第五个参数: Model.MyResponse(模型中选定的变量包含所选项目的

希望这些信息很有用......