C# 获取Html.DropDownList的值
我目前在MVC项目的Razor视图中有以下代码:C# 获取Html.DropDownList的值,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我目前在MVC项目的Razor视图中有以下代码:Item code:@Html.DropDownList(“ItemID”,(SelectList)ViewBag.Items) 我想稍后在Razor视图中的@Ajax.ActionLink中访问下拉列表的值。是否有方法访问视图中下拉列表的值??使用JQuery获取当前选定的值- $('#dropDownId').val(); 使用JQuery获取当前选定的值- $('#dropDownId').val(); 如果您没有一个特殊的库(如jQue
Item code:@Html.DropDownList(“ItemID”,(SelectList)ViewBag.Items)
我想稍后在Razor视图中的
@Ajax.ActionLink
中访问下拉列表的值。是否有方法访问视图中下拉列表的值??使用JQuery获取当前选定的值-
$('#dropDownId').val();
使用JQuery获取当前选定的值-
$('#dropDownId').val();
如果您没有一个特殊的库(如jQuery)来处理DOM元素,您可以按照以下示例使用vanilla Javascript:
//通过元素的ID值获取元素
var dropdownElement=document.getElementById(“ddlItems”);
//现在我们有了对下拉字段的引用,让我们读取所选值(或文本):
//1-选定值
var selectedValue=dropdownElement.options[dropdownElement.selectedIndex].value;
//2-选定文本
var selectedText=dropdownElement.options[dropdownElement.selectedIndex].text;
//显示带有选定文本和值的弹出窗口
window.alert(“所选值为:(“+selectedValue+”),所选文本为:(“+selectedText+”)代码>
第一项
第二项
第3项
如果您没有一个特殊的库(如jQuery)来处理DOM元素,您可以按照以下示例使用vanilla Javascript:
//通过元素的ID值获取元素
var dropdownElement=document.getElementById(“ddlItems”);
//现在我们有了对下拉字段的引用,让我们读取所选值(或文本):
//1-选定值
var selectedValue=dropdownElement.options[dropdownElement.selectedIndex].value;
//2-选定文本
var selectedText=dropdownElement.options[dropdownElement.selectedIndex].text;
//显示带有选定文本和值的弹出窗口
window.alert(“所选值为:(“+selectedValue+”),所选文本为:(“+selectedText+”)代码>
第一项
第二项
第3项
如果我正确理解了您的问题,您正在尝试从视图中将所选值从DropDownList
帮助程序传递到@Ajax.ActionLink
帮助程序,这是不可能的,因为@Ajax.ActionLink
帮助程序在发送到浏览器之前在服务器端进行处理和呈现
您可以使用@Html.ActionLink
帮助程序而不使用routeValue
参数,并设置锚定标记的id
属性:
@Html.ActionLink("Get Item", "TargetAction", "TargetController", null, new { id = "link" })
然后使用不引人注目的AJAX处理该链接的单击事件,并从下拉元素中传递所选值:
$('#link').click(function(e) {
e.preventDefault();
// get selected value from dropdownlist
var selected = $('#ItemID').val();
$.ajax({
type: 'GET',
url: this.href,
data: { id: selected }, // action parameter with selected value
cache: false, // disable caching
success: function (result) {
// do something to target DOM
}
});
return false;
});
附加说明:
1) 确保传递到数据
设置中的参数与链接的href
属性所指向的目标控制器操作中的参数完全匹配
public ActionResult TargetAction(int id)
{
// do something
}
2) 您可以使用强类型版本的DropDownList
,即DropDownListFor
来绑定viewmodel属性
@Html.DropDownListFor(model => model.ItemID, ViewBag.Items as SelectList, ...)
如果我正确理解了您的问题,您正试图从视图中将所选值从DropDownList
帮助程序传递到@Ajax.ActionLink
帮助程序,这是不可能的,因为@Ajax.ActionLink
帮助程序在发送到浏览器之前在服务器端进行了处理和渲染
您可以使用@Html.ActionLink
帮助程序而不使用routeValue
参数,并设置锚定标记的id
属性:
@Html.ActionLink("Get Item", "TargetAction", "TargetController", null, new { id = "link" })
然后使用不引人注目的AJAX处理该链接的单击事件,并从下拉元素中传递所选值:
$('#link').click(function(e) {
e.preventDefault();
// get selected value from dropdownlist
var selected = $('#ItemID').val();
$.ajax({
type: 'GET',
url: this.href,
data: { id: selected }, // action parameter with selected value
cache: false, // disable caching
success: function (result) {
// do something to target DOM
}
});
return false;
});
附加说明:
1) 确保传递到数据
设置中的参数与链接的href
属性所指向的目标控制器操作中的参数完全匹配
public ActionResult TargetAction(int id)
{
// do something
}
2) 您可以使用强类型版本的DropDownList
,即DropDownListFor
来绑定viewmodel属性
@Html.DropDownListFor(model => model.ItemID, ViewBag.Items as SelectList, ...)
你是说选择值?如果没有,您已经有了您的值(SelectList)ViewBag.Items
是选定的值。用户可以更改该值,因此您应该通过JS管理它。您是指选定的值吗?如果没有,您已经有了您的值(SelectList)ViewBag.Items
是选定的值。用户可以更改该值,因此您应该通过JS进行管理