如何将文本框值发送到json数组

时间:2016-05-12 09:53:38

标签: jquery json asp.net-mvc razor

这可能很简单,但我还没有找到任何正确的方法。

   @Html.EditorFor(model => model.Name)
   @Html.DropDownListFor(model => model.Destination)

现在,我想知道如何通过jquery从这些强类型的html助手中选择值。 我想将这些选定的输入值发布到json数组。像这样:

{     名称:“文本框中的选定值”,     目的地:“从下拉列表中选择的值”    }

我知道如何使用简单的文本框:

@Html.TextBox("myname")

从此文本框中获取值,只需使用

即可
$("myname").val();

Prevoiusly,我能够通过json数组将静态数据发送到控制器,如下所示:

 <script> 
  var auth = {
        ClientId : "ApiIntegration",
        Origin : "Delhi",
    }

  $("#btnPost").click(function () {
        $.ajax(
            {
                url: "/api/Flight/About",
                type: "Post",
                contentType: "application/json",
                data: JSON.stringify(auth),
                success: function(result)
                {
                    alert(result);
                }
        });
  });

但是现在,我想在Textbox的Origin对象中填充值,这次不是静态的。 我的编辑是这样的:

  @Html.EditorFor(model => model.Origin)

请帮帮我。

5 个答案:

答案 0 :(得分:0)

您可以从输入名称获取值,如下所示:

$("input[name=myname]").val();

答案 1 :(得分:0)

var jList=[];
var jOobj={Name:""};

jObj.Name=$("#myname").val();
jList.push(jObj);

答案 2 :(得分:0)

使用AJAX时始终使用promise是一种好习惯。在您自己的情况下添加数据类型如下:

function SaveRecord(data) {
            return $.ajax({
                url: "/api/Flight/About",
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                type: 'POST',
                data: data
            });
        }

然后你可以这样使用它:

 var data = {
      ClientId : $("#Name").val(),
      Origin : $(#Destination").val()
};

$.when(SaveRecord(data )).then(function (res) {
  ///handle success calback here
 }).fail(function(err){});

我希望这会有所帮助

答案 3 :(得分:0)

@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @id="Name" } })
@Html.DropDownList(model => model.Destination, new { htmlAttributes = new { @id = "Destination" } })
<script type="text/javascript">


    var auth = {ClientId: "",Origin: ""}

    auth.ClientId = $("#Name").val();
    auth.Origin= $("#Destination option:selected").text();

    $("#btnPost").click(function () {
        $.ajax({
                url: "/api/Flight/About",
                type: "Post",
                contentType: "application/json",
                data: JSON.stringify(auth),
                success: function (result) {
                    alert(result);
                }
            });
    });


</script>

答案 4 :(得分:0)

试试这个:

 var originvalue = $('#Origin').val();    

    $("#btnPost").click(function () {
            $.ajax(
                {
                    url: "/api/Flight/About",
                    type: "Post",
                    data: '{"ClientId":"ApiIntegration"' + ',"Origin":"' + originvalue + '"}',
                    contentType: 'application/json; charset=utf-8',
                    success: function(result)
                    {
                        alert(result);
                    }
            });
      });