提交C#

问题描述:

我要提交禁用的下拉值禁用下拉MVC:提交C#

查看:

@Html.DropDownFor(model => model.Type_Id, Model.TypeDropDown) 
@Html.HiddenFor(m => m.Type_Id) 

的Javascript:

$("#Type_Id").val("67").change(); 
document.getElementById("Type_Id").disabled = true; 
$('#Type_Id').val(67); 

但我的价值不传递给C#控制器。

+0

你在做表单提交吗? 'disabled'属性不会发布相应的DDL,而是使用'visibility:hidden'或'$('#element')。hide()'。 –

+0

但我想在禁用的下拉列表中显示一个固定值。 –

一旦你禁用下拉菜单,它不会提交它的值,所以你需要存储你的价值。

参见:Disable Dropdown

使用hiddenfor与nameparameter存储值。

+0

但我想显示一个固定值禁用下拉菜单。 –

+0

啊oka,我错过了,我会编辑我的答案。 – user3759748

使用隐藏字段来存储禁用的下拉列表的值。在您的代码中,您必须手动设置隐藏字段的值,然后将其发布到像下面这样的控制器中。您必须在模型中添加“Type_id_hidden”属性才能访问控制器中的值。

@Html.Hidden("Type_id_hidden")

但在你的代码中,你使用了隐藏字段和下拉列表中的相同ID。张贴到控制器

var selectedVal = $("#Type_Id").val(); 
$("#Type_id_hidden").val(selectedVal); 
+0

我不明白。 我需要在我的模型中添加新的属性? long Type_id_hidden? 我的隐藏字段需要与下拉菜单具有相同的ID? –

+0

在您的模型中添加一个新的属性'int Type_id_hidden',您正在绑定到控制器中。在你的代码中,你有相同的隐藏字段和下拉列表的id,因此当你使用jquery设置值时,它会变得困惑,隐藏的字段值永远不会发送到控制器 – Niladri

+0

你应该有隐藏字段和下拉列表的唯一ID使用jquery – Niladri

使用一个额外的隐藏字段具有相同的值下拉提交的价值,并让下拉只是显示值之前设置隐藏字段。

您无法提交禁用字段的值。

+0

我该怎么办? 你能举例吗? –