Jquery 通过json传递dropdownlist的选定文本
我想从controller方法中的dropdownlist中获取所选选项的文本。 但是使用下面的代码,我只得到初始文本,而不是更改后的文本 data.submit之前的data.jsonOfLog获取更改的文本,但传递给控制器的不是此文本 在控制器中:Jquery 通过json传递dropdownlist的选定文本,jquery,asp.net-mvc,json,drop-down-menu,controller,Jquery,Asp.net Mvc,Json,Drop Down Menu,Controller,我想从controller方法中的dropdownlist中获取所选选项的文本。 但是使用下面的代码,我只得到初始文本,而不是更改后的文本 data.submit之前的data.jsonOfLog获取更改的文本,但传递给控制器的不是此文本 在控制器中: [HttpPost] public JsonResult GoodSave(string jsonOfLog) { 鉴于: <script type="text/javascript"> $(function ()
[HttpPost]
public JsonResult GoodSave(string jsonOfLog)
{
鉴于:
<script type="text/javascript">
$(function () {
json = { jsonOfLog: $("#ddlDocumentType option:selected").text() };
$('#fileupload').fileupload({
dataType: 'json',
contentType: 'application/json; charset=utf-8',
url: '/Home/GoodSave',
data: JSON.stringify(json),
add: function (e, data) {
$('#fileuploadbutton').click(function () {
data.jsonOfLog = $("#ddlDocumentType option:selected").text();
data.submit();
})
}
});
});
</script>
$(函数(){
json={jsonOfLog:$(“#ddlDocumentType选项:选中”).text();
$('#fileupload')。fileupload({
数据类型:“json”,
contentType:'application/json;charset=utf-8',
url:“/Home/GoodSave”,
数据:JSON.stringify(JSON),
添加:功能(e、数据){
$('#fileuploadbutton')。单击(函数(){
data.jsonOfLog=$(“#ddlDocumentType选项:选中”).text();
data.submit();
})
}
});
});
当您尝试上载时,这将更改
表单数据
<script type="text/javascript">
$(function () {
$('#fileupload').fileupload({
contentType: 'application/json; charset=utf-8',
url: '/Home/GoodSave'
})
.on("fileuploadsubmit", function (e, data) {
data.formData = {
jsonOfLog: $("#ddlDocumentType option:selected").text()
};
});
$("#fileuploadbutton").on("click", function() {
$("#fileupload").submit();
});
});
</script>
$(函数(){
$('#fileupload')。fileupload({
contentType:'application/json;charset=utf-8',
url:“/Home/GoodSave”
})
.on(“文件上传提交”,函数(e,数据){
data.formData={
jsonOfLog:$(“#ddlDocumentType选项:选中”).text()
};
});
$(“#文件上载按钮”)。在(“单击”,函数()上){
$(“#文件上载”).submit();
});
});
我认为您不需要对数据进行字符串化,因此请尝试上面的方法,如果这不起作用,请像以前一样使用字符串化。当您传递带有属性名的数据时,不需要它,属性名应该与服务器方法中的参数匹配
这来自blueimp文件上载文档
最后,有效的方法是:
<script type="text/javascript">
$(function () {
$('#fileupload').fileupload({
add: function (e, data) {
$('#fileuploadbutton').click(function () {
$.ajax({
type: 'POST',
cache: true,
url: '/Home/GoodSave',
data: { jsonOfLog: $("#ddlDocumentType option:selected").text() },
success: function (data) {
},
error: function (data) {
alert("error");
}
});
});
}
});
});
</script>
$(函数(){
$('#fileupload')。fileupload({
添加:功能(e、数据){
$(“#文件上载按钮”)。单击(函数(){
$.ajax({
键入:“POST”,
是的,
url:“/Home/GoodSave”,
数据:{jsonOfLog:$(“#ddlDocumentType选项:选中”).text(),
成功:功能(数据){
},
错误:函数(数据){
警报(“错误”);
}
});
});
}
});
});
使用$(“#ddlDocumentType”).val()
@Satpal-他想要的是文本,而不是值。@Archer,读取title通过json传递dropdownlist的选定值
@Satpal,读取code.text()
。你应该问一个问题,而不是告诉他们什么可能是错误的。谢谢你的快速回复!我希望在单击“上载”按钮时调用控制器方法。对于您建议的更改,单击“选择文件”按钮将调用它。好的-我将进行修改。此外,data.submit之前的data.jsonOfLog将获取更改的文本,但传递给控制器的不是此文本。controller方法获取dropdownlist的初始文本。试试看。您正在传递数据
,但根据文件上载插件上的文档,您应该使用表单数据
。我以前只在上传文件时使用过它,所以也不能太确定是否要添加表单数据,但这似乎是您需要做的。但是,在该脚本中指定的#fileuploadbutton的单击事件在哪里?