これは、JavaScriptがcshtmlファイルと同じページにあるときに機能していました。
function SaveEntity() {
// more code here
alert(entity.FirstName); // this shows that entity's properties have values
$.post('/Home/Save', { entity: entity }, SaveComplete);
}
そのコードは現在、別のIndex.jsファイルにあります。私のコントローラーでは、エンティティーパラメーターはnullではありませんが、その値はすべてnullです。なぜ今それが起こるのでしょうか?
コントローラの署名:
public ActionResult Save(Entity entity)
{ // method here }
編集-フィドラーのスクリーンショット
編集
これは、EntityFrameworkによって生成されたEntityクラスです。
public partial class Entity
{
public Entity()
{
this.Contacts = new HashSet<Contact>();
}
public int EntityId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string Company { get; set; }
public string LastModifiedUser { get; set; }
public Nullable<System.DateTime> LastModifiedTime { get; set; }
public string Notes { get; set; }
public virtual ICollection<Contact> Contacts { get; set; }
}
編集
完全なSaveEntity()メソッドを使用した完全なIndex.js:
var _currentEntities;
$(function () {
// Hide the ID column (column 1)
$('#tableContacts').dataTable({
"aoColumnDefs": [
{ "bSearchable": false, "bVisible": false, "aTargets": [0] }
],
"bLengthChange": false, // don't show the number of records to show per page
"bFilter": false, // don't show the search/filter box
"iDisplayLength": 5
});
$('#waitImage').hide();
// Show the letters of the alphabet, with a link to call GetEntries() for each of them.
for (var i = 65; i <= 90; i++) {
$('#headerAlphabet').append('<a href=\"#\" onclick=\"GetEntries(\''
+ String.fromCharCode(i) + '\')\">'
+ String.fromCharCode(i) + '</a> ');
}
});
function GetEntries(firstLetter) {
// code here
}
function EntriesReceived(entities) {
// code here
}
function DisplayPerson(entityId) {
// code here
}
function SaveEntity() {
// Grab our entity
var entity;
for (var i = 0; i < _currentEntities.length; i++) {
if (_currentEntities[i].EntityId == $('#txtEntityId').val()) {
entity = _currentEntities[i];
break;
}
}
entity.FirstName = $('#txtFirstName').val();
entity.LastName = $('#txtLastName').val();
entity.Address = $('#txtAddress').val();
entity.City = $('#txtCity').val();
entity.State = $('#txtState').val();
entity.ZipCode = $('#txtZipCode').val();
entity.Company = $('#txtCompany').val();
entity.Notes = $('#txtNotes').val();
alert(entity.FirstName);
$.post('/Home/Save', { entity: entity }, SaveComplete);
}
function SaveComplete(saveStatus) {
alert(saveStatus);
}
function CancelChanges() {
alert('Cancel will be done here.');
}