我有一个文本框设置,如下所示:
@Html.TextBoxFor(m => m.NewVehCode, new {data_id = "" })
当用户选择车辆时,车辆的描述变为文本框的值,车辆代码(我想发送给DB的那个)变成data-id(不是完整代码,但是我设置了值像这样):
$("#NewVehCode").val(vehDescription);
$("#NewVehCode").attr("data-id", vehCode);
这一切都运行正常,除了我提交时,MVC抓取文本框的值。
我是否可以提交,获取该文本框的数据ID而不是值?
请注意,我没有使用.js来收集数据。 Form调用控制器操作,将模型直接发送到控制器。
答案 0 :(得分:0)
无法提交"数据"的值属性。我不确定你为什么要使用数据属性(这是一个要求与否,不确定)。但是您可以在表单中拥有隐藏属性,因此,当用户选择车辆时,以及文本框的数据属性,更新此隐藏值。这个隐藏的值将被提交回表单。
答案 1 :(得分:0)
Stephen Muecke的评论帮助我触发了这个解决方案:
我添加了一个用于车辆代码的隐藏文本框,并使显示描述的文本框成为没有数据绑定的标准文本框。
get_obj(classA)
这样我可以毫无问题地使用该值:
<input id="newVehInput" readonly="readonly" class="longInput" type="text">
@Html.TextBoxFor(m => m.NewVehCode, new { style = "display: none"})
(将在2天内标记为答案)
答案 2 :(得分:0)
将隐藏的文本框添加到您在提交
上发回的html中在你的模特中:
public string Id {get;set;}
使用隐藏类
在视图中渲染它用js。
$("#vehicleList").on("change",function(){
$("#Id").val($vehCode)
})
提交时,应在模型中设置id的值
答案 3 :(得分:0)
您可以hidden field
按住更新的值。
<强> HTML:强>
<input type="hidden" id="HiddenVehCode" name="HiddenVehCode" Value="0"/>
<强> JS 强>
$("#HiddenVehCode").val(vehDescription);
注意:您应该设置模型,以便HiddenVehCode将到达Form Submit.Something Like上的actionMethod,
public int HiddenVehCode {get;set;}