(免责声明/承认我的罪过:我长时间陷入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代码应该是什么,以及如何将其连接到下拉选择事件?
答案 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
(模型中选定的变量包含所选项目的值)
希望这些信息很有用......