2016-05-12 53 views
-1

這可能很簡單,但我還沒有找到任何正確的方法。如何發送文本框值爲json數組

@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); 
       } 
     }); 
    }); 

但現在,我想從文本框此時填充在JSON來源對象值不是靜態的一個。 我的編輯器是這樣的:

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

請幫我一把。

+0

「Origin」的類型/價值是什麼?我的簽名是什麼thod您的發佈到 –

回答

0

你可以從輸入名稱值這樣的:

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

它不會工作 – duke

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

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

不工作空陣列得到發佈 – duke

+0

評論我們可以改變..tell我什麼錯誤你 – Muthu

0

這是一個很好的做法使用AJAX時,總是使用的承諾。在你自己的情況下,增加的數據類型,像這樣:

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){}); 

我希望這有助於

+0

空陣列,不工作 – duke

+0

請添加您的控制器代碼。 –

+0

[System.Web.Http.HttpPost] public async Task About([FromBody] Authenticate auth) – duke

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> 
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); 
        } 
      }); 
     }); 
+0

它將在用戶名 – duke

+0

中打印出原始值+原始值對不起,我沒有得到你想說的。 Originvalue是一個變量,它從第一行中描述的使用id的輸入中獲取值。 –

相關問題