ビューモデルのメンバであるモデルを埋めようとしています。 アクションからビューにデータを送信します。正しい仕事です。保存ボタンをクリックすると、エラーが発生するmvcでm viewModelのモデルを埋めてください
オブジェクト参照がオブジェクトのインスタンスに設定されていません。デバッガは、このコードに到着したとき
ビューモデルは、ポストデータの
public class OrderCustomer
{
public Order Order { get; set; }
public ApplicationUser ApplicationUser { get; set; }
}
とアクションでは
[HttpPost]
public ActionResult AddressAndPayment(OrderCustomer values)
{
var orderCustomer = new OrderCustomer();
var order = orderCustomer.Order;
string uId = User.Identity.GetUserId();
order.Username = User.Identity.Name;
order.ApplicationUserId = uId;
order.OrderDate = DateTime.Now;
order.Address = values.ApplicationUser.Address;
order.CityId = (int)values.ApplicationUser.CityId;
order.CountryId = (int)values.ApplicationUser.CountryId;
order.Email = values.ApplicationUser.Email;
order.FirstName = values.ApplicationUser.FName;
order.LastName = values.ApplicationUser.LName;
order.Phone = values.ApplicationUser.Phone;
order.PostalCode = values.ApplicationUser.PostalCode;
order.ProvinceId = (int)values.ApplicationUser.ProvinceId;
if (ModelState.IsValid)
{
TryUpdateModel(order);
try
{
_db.Orders.Add(order);
_db.SaveChanges();
var cart = ShoppingCart.GetCart(this.HttpContext);
cart.CreateOrder(order);
return RedirectToAction("Index", "Payment", new { id = order.Id });
}
catch
{
return View(order);
}
}
return View(order);
}
方法を、以下に示す上記のコードのエラーライン5を示し私はそれを修正することはできますか?その後Order
はデフォルトでnull
だろう
public class OrderCustomer {
public OrderCustomer() {
Order = new Order();
}
public Order Order { get; set; }
public ApplicationUser ApplicationUser { get; set; }
}
よう
に初期化されるときOrderCustomer
がOrder
を初期化していないことを考えると
order.Username = User.Identity.Name;
意図したものであると考えている - あなたの認証コードに見えるか、このような匿名のプリンシパルを設定https://stackoverflow.com/を質問/ 2893334/invalidating-asp-net-formsauthentication-server-side – mchan
'order'は' null'です。そのプロパティにインスタンスを割り当てない – Nkosi