Мой контроллер получает нулевое значение, когда я получаю список по идентификатору - PullRequest
0 голосов
/ 03 июня 2018

почему мой контроллер получает нулевое значение для адреса, телефона, имени пользователя, электронной почты?

Когда я отлаживаюсь, Payment2 POST получает идентификатор из представления и имеет значение.

Мой контроллер:

[HttpGet]
public ActionResult Payment2(int id)
{
    model md = new model();
    var pm = new paymentmodel();
    var cart = Session[CartSession];
    if (cart != null)
    {
        md.v1 = (List<CartItemModel>)cart;
    }
    md.v2 = pm.userdetails(id);
    return View(md);
}
[HttpPost]
public ActionResult Payment2(int id, User c)
{
    var cart = (List<CartItemModel>)Session[CartSession];
    foreach (var item in cart)
    {
        if (item.quantity > item.Product.suspended)
        {
            return Redirect("/loi-so-luong");
        }
    }
    var oder = new HoaDon();
    oder.Date = DateTime.Now;
    oder.Address = c.Address;
    oder.Phone = c.Phone;
    oder.TenNguoiNhan = c.UserName;
    oder.E_mail = c.Email; 
    }
    return Redirect("/hoan-thanh");
}

NULL с Address, Phone, UserName, Email

Мой model.cs:

public class model
{

    public List<CartItemModel> v1 { set; get; }

    public List<get_customer_Result> v2 { set; get; }
}

Моя платежная модель:

public class paymentmodel
{
    KINHDOANHVLXDEntities ke = new KINHDOANHVLXDEntities();
    public List<get_customer_Result> userdetails(int id)
       {
          var ln = ke.get_customer(id);

          return ln.ToList();
        }
}

Мой индексный просмотр:

@model List<thuctaplan2.Models.CartItemModel>
@using thuctaplan2.Common
  @{
     ViewBag.Title = "Index";
     Layout = "~/Views/Shared/_Layout.cshtml";
     var session = (UserLogin)Session[CommonConstants.USER_SESSION];
   }

  <a href="@Url.Action("Payment2", new { id = session.id_NguoiDung})" class="btn">Thanh Toán</a>

Мой платеж2 Просмотр:

@model thuctaplan2.Models.model
@{
    ViewBag.Title = "Thanh Toán";
    Layout = "~/Views/Shared/_Layout.cshtml";
 }
  @using (Html.BeginForm("Payment2", "Cart", FormMethod.Post))
    {
            foreach (var item in Model.v2)
            {
                <div class="form-group">
                    <label>Name</label>
                    <label>@item.UserName</label>
                </div>
                <div class="form-group">
                    <label>Phone</label>
                   <label>@item.Phone</label>
                </div>
                <div class="form-group">
                    <label>Address</label>
                    <label>@item.Address</label>
                </div>
                <div class="form-group">
                    <label>E-mail</label>
                   <label>@item.Email</label>
                </div>
            }
            <button type="submit" class="btn">Send</button>
        }

1 Ответ

0 голосов
/ 03 июня 2018

То, что происходит здесь на основе вашего кода, заключается в том, что при отображении представления все ваши элементы управления внутри формы пусты или не имеют значения, короче говоря, равны нулю.Зачем?Поскольку вы визуализируете только HTML-элементы меток внутри своей формы.

Чтобы получить значение, добавьте текстовое поле, например:

@Html.TextBoxFor(modelItem => item.UserName, new { @class = "form-control" }) 

, чтобы при отправке формы ваша User свойства модели, такие как UserName, будут иметь значение.Если это только метки, никакое значение не будет передано вашему контроллеру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...