Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在MVC中从复杂的下拉列表中返回所选值?_Javascript_C#_Asp.net Mvc_Drop Down Menu - Fatal编程技术网

Javascript 如何在MVC中从复杂的下拉列表中返回所选值?

Javascript 如何在MVC中从复杂的下拉列表中返回所选值?,javascript,c#,asp.net-mvc,drop-down-menu,Javascript,C#,Asp.net Mvc,Drop Down Menu,我的dropdownlist工作起来就像一个树视图。因为,我似乎不知道Html.DropDownListFor是否能做到这一点,所以我不得不用老式的方式来做。这是我的密码 视图: 控制器: 如何将所选值(LocationId)返回控制器?视图中的id=“locSelection”,作为控制器中的对象选择引入。谢谢:) 首先,它不是一种老式的方式,它是复制下拉列表的引导方式 其次,它不是一个下拉式元素 因为它只包含ul和li标记,并且这些标记不是输入类型,所以您无法回发值 代码中的另一个问题

我的dropdownlist工作起来就像一个树视图。因为,我似乎不知道Html.DropDownListFor是否能做到这一点,所以我不得不用老式的方式来做。这是我的密码

视图:

控制器:

如何将所选值(LocationId)返回控制器?视图中的id=“locSelection”,作为控制器中的对象选择引入。谢谢:)

  • 首先,它不是一种老式的方式,它是复制下拉列表的引导方式

  • 其次,它不是一个下拉式元素

因为它只包含
ul
li
标记,并且这些标记不是输入类型,所以您无法回发值

代码中的另一个问题是,您在多个元素上设置ID
locSelection
,而这也在循环中。。因此,您将拥有大量具有相同ID的元素,这是一个很大的。Id必须是唯一的,否则当我们开始在这些元素上使用Jquery时,这将是一场噩梦

解决方案--使用Jquery

  • 删除Id的

  • 向所有锚定标记添加一个类,例如:
    locSelection

  • 在表单中维护一个隐藏的输入字段。我们将使用这个隐藏的输入字段在表单提交时发回数据

  • 现在,将单击事件绑定到
    li
    中的锚定标记,并在该事件中将单击的锚定标记文本值放入隐藏的输入中
$('.locSelection')。在('click',function()上{
$('#locSelection').val($(this.text());

});

虽然我编辑以使图像可见,但请编辑以直接包含代码(不在图像中)。我有视觉问题。这样我就可以读代码了,你能把它粘贴成文本吗?谢谢你,雷迪。这帮了大忙。我是一个winforms的家伙,正在经历未来的MVC。这完全不同。@John很高兴我帮了忙:)