2014-07-17 40 views
0

我正在一個網站上,我有一個控制器,需要在大量的數據,包括名稱字段:JSON如何將對象轉換爲Name.First而不是Name [First]?

public Name name { get; set; } 

定義如下:

public class Name 
{ 
    [RegularExpression(@"^[a-zA-ZÀ-ÿ\s-'.*]*$")] 
    public string First { get; set; } 
    [RegularExpression(@"^[a-zA-ZÀ-ÿ\s-'.*]*$")] 
    public string Last { get; set; } 
    public string DatabaseName { get; set; } 

} 

我一直在使用一個通過這個控制器傳遞數據的MVC頁面,它可以工作。所有這些頁面上的字段是MVC HTML輔助,所以我有一個輸入框:

@HTML.TextBoxFor(m => m.Name.First) 

使用招,我能看到數據被作爲Name.First傳遞:「約翰」,這是正確的,並且這將正確返回結果。

但是,我有另一個頁面,我無法使用HTML助手。對於大多數領域,我能夠正確地獲取數據使用JSON和異步AJAX調用:

var queryModel = { 
    SoundEx: $("#Soundex").val(), 
    ExactSearch: $(".exact").val(), 
    Name : {First : $('.col-sm-5 > .form-control[placeholder="First and Middle Names"]').val(), 
    Last: $('.col-sm-5 > .form-control[placeholder="Last Name"]').val()}, 
    FromYear: $('.form-control[id="yearFrom"]').val(), 
    ToYear: $('.form-control[id="yearTo"]').val(), 
    SelectedType: $("#RecordDropdown").val(), 
    Location: $('.form-control[placeholder="Enter Location"]').val(), 
    Favorites: $("#Favorite").val(), 
    Free: $("#Free").val(), 
    Images: $("#Images").val(), 
    Category: $("#category").val(), 
    Database: $("#database").val(), 
    Keywords: $('.form-control[placeholder="Enter terms or words"]').val(), 
    FamilyMembers: [{ Relationship: $("#Type1").val(), Firstname: $("#First1").val(), LastName: $("#Last1").val() }, 
        { Relationship: $("#Type2").val(), Firstname: $("#First2").val(), LastName: $("#Last2").val() }, 
        { Relationship: $("#Type3").val(), Firstname: $("#First3").val(), LastName: $("#Last3").val() }], 
    PageNum: 1, 
    PageSize: 20, 
    newSearch: 1, 
    SortBy: "Relevance" 

} 

$(resultsDiv).html("<h3>Searching...</h3>"); 

resultsDiv.show(); 

$.ajax({ 
    url: "http://nehgs.mvc/SearchResults/Results", 
    type: 'post', 
    dataType: 'text/html', 
    success: function (info) { 
     $(resultsDiv).html(info.responseText); 
    }, 
    data: queryModel 

}); 

我所有的搜索領域,除了名字和關係領域的工作,即無論是在他們輸入在我的數據庫中正確搜索,返回的結果是正確的。但是,當填寫名稱或關係字段時,它們不會被搜索;我仍然收到返回的數據,但這些字段被視爲空白。

在提琴手,我可以看到,這些領域正在傳遞的

Name[First] 

Relationships[0][Firstname] 

而在這些領域的工作頁面,他們正在爲

通過
Name.First 

and

Relationships[0].Firstname 

這是我能想到的唯一會導致此問題的事情。我怎樣才能使JSON傳遞爲Name.First而不是Name [First]?

+0

如果更換了jQuery'.val'功能'Name'用硬編碼字符串'{第一:「 FirstName「,Last:」LastName「}'你是否成功地在你的控制器動作中綁定了這個值?爲「關係」做同樣的事情。另外,你的C#queryModel是什麼樣的? – Jasen

回答