0

(免责声明/承认我的罪过:我被困在 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; }

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

我可以将所有正确的数据放入模型中。我不知道该怎么做的部分是使用客户端事件创建下拉列表,以使用所选预设响应的“文本”属性填充“我的响应”文本区域。我认为这必须在 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 ))

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

第二个参数:您的列表(请注意,您可以在模型中传递列表,以免在视图中创建它只是为了使视图尽可能简单)

第三个参数:( "Value"保存列表元素的值成员的属性的名称)

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

第 5 个参数:( Model.MyResponse模型中的选定变量保存选定项的

希望这些信息有用...

于 2014-01-02T12:44:28.643 回答