我正在一個網站上,我有一個控制器,需要在大量的數據,包括名稱字段: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]?
如果更換了jQuery'.val'功能'Name'用硬編碼字符串'{第一:「 FirstName「,Last:」LastName「}'你是否成功地在你的控制器動作中綁定了這個值?爲「關係」做同樣的事情。另外,你的C#queryModel是什麼樣的? – Jasen