将当前值的 html.dropdownlist 传递给 Actionlink?
Posted
技术标签:
【中文标题】将当前值的 html.dropdownlist 传递给 Actionlink?【英文标题】:Pass html.dropdownlistfor current value to Actionlink? 【发布时间】:2015-06-05 07:06:30 【问题描述】:是否可以将@html.DropDownListFor
当前值传递给操作链接?我想通过Create
Action 将模板值传递给Sample
控制器。下面的代码不起作用,因为@Model.SurveyTemplate
不返回任何值。是否需要javascript
才能检索?请指导我。
下拉列表:
@Html.LabelFor(model => model.Survey_Template, "Survey Template")
@Html.DropDownListFor(model => model.Survey_Template, new SelectList(
new List<Object>
new value = "Style1" , text = "Style1" ,
new value = "Style2" , text = "Style2" ,
new value = "Style3" , text = "Style3"
,
"value",
"text",
0))
动作链接:
@Html.ActionLink("_", "Create", "Sample",
new template = @Model.Survey_Template ,
new @id = "popup-link", @class = "classname2" )
【问题讨论】:
【参考方案1】:您必须使用JavaScript
执行此操作,razor 语法 仅在 服务器端 上被识别。这意味着@Model.Survey_Template
将在用户请求页面时呈现,并将具有默认值。
如果您选择使用 JavaScript
进行此操作,请记住您需要保存基本 url 并根据已选择的内容向其附加参数。
这些步骤将帮助您达到您想要的结果:
-
在下拉列表中附加
change
事件。
获取选中的value
并构造新的url
替换操作 (<a .. />
) 的 url (href
)
注意:我没有写代码,因为我想让你超越自己。
我认为您尝试实现的是 form
和 GET
。
@using(Html.BeginForm("Create", "Sample", FormMethod.GET))
@Html.LabelFor(model => model.Survey_Template, "Survey Template")
@Html.DropDownListFor(model => model.Survey_Template, new SelectList(
new List<Object>
new value = "Style1" , text = "Style1" ,
new value = "Style2" , text = "Style2" ,
new value = "Style3" , text = "Style3"
,
"value",
"text",
0))
<input type="submit" value="_" class="classname2" id="popup-link" />
【讨论】:
以上是关于将当前值的 html.dropdownlist 传递给 Actionlink?的主要内容,如果未能解决你的问题,请参考以下文章
将 Html.DropDownList 的选定值传递给控制器
使用 JQuery 将选择属性添加到 Html.DropDownList
如何将多个 Html.DropDownList 选定值从 View(.aspx) 传递给 MVC 控制器的操作?