Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
Jquery 通过json传递dropdownlist的选定文本_Jquery_Asp.net Mvc_Json_Drop Down Menu_Controller - Fatal编程技术网

Jquery 通过json传递dropdownlist的选定文本

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 ()

我想从controller方法中的dropdownlist中获取所选选项的文本。 但是使用下面的代码,我只得到初始文本,而不是更改后的文本

data.submit之前的data.jsonOfLog获取更改的文本,但传递给控制器的不是此文本

在控制器中:

[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的单击事件在哪里?