クライアント
public class ClientModelData
{
public int ClientID { get; set; }
public string ClientName { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
public IList<int> LocationID { get; set; }
}
コントローラ
[HttpPost]
public ActionResult AddClient(ClientModelData client)
{
Client _client = new Client()
{
//ClientCode=client.ClientCode,
ClientName = client.ClientName,
Phone = client.Phone,
Ext = client.Ext,
Address = client.Address,
CreatedBy = 1,
CreatedDate = DateTime.Now,
ModifiedBy = 1,
ModifiedDate = DateTime.Now,
ModifiedIP = Request.ServerVariables["REMOTE_ADDR"]
};
db.Clients.Add(_client);
try
{
db.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
string error = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
error += string.Format("Property: {0} Error: {1}", validationError.PropertyName,
validationError.ErrorMessage);
return Json(new
{
status = false,
message = "Unable to update information for selected client, please contact administrator. For detail <a class='errordetail'>click here</a>",
exception = error
});
}
return Json(_client);
}
チェックボックスリストがあります:
<ul class="locations">
@foreach (var item in Model.Locations)
{
<li>
<label>
<input type="checkbox" id="chkLocations" name="chkLocations"
value="@item.LocationID" />
@item.LocationTitle</label>
</li>
}
</ul>
** Json オブジェクトには次の値が含まれます: **
var allVals = [];
$('#chkLocations:checked').each(function () {
allVals.push($(this).val());
});
var dataPacket = {
ClientName: $("#txtClientName").val(),
Phone: $("#txtPhone").val(),
Ext: $("#txtExt").val(),
Address: $("#txtAddress").val(),
LocationID: allVals
};
チェックボックスを指定すると、問題が発生します。チェックボックスをオンにすると、ModelData Entity Locationプロパティが設定されません。
画像:
問題が発生します 投稿フォーム... JQuery AJAX
画像: