#asp.net #asp.net-mvc-3
#asp.net #asp.net-mvc-3
Вопрос:
У меня есть следующая модель:
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Address BillingAddress { get; set; }
public Address ShippingAddress { get; set; }
}
где адрес:
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public string City { get; set; }
}
Я хочу создать форму / представление, я создал представление :
Создать
<div>
<label>First Name</label>
<input name="FirstName" />
</div>
<div>
<label>Last Name</label>
<input name="LastName" />
</div>
<div>
<label>Billing Address</label>
<input name="BillingAddress" />
</div>
<div>
<label>Shipping Address</label>
<input name="ShippingAddress" />
</div>
<div>
<input type="submit" value="Save" />
</div>
</form>
Я хочу показать полный адрес, я имею в виду город и улицу. Нужно ли мне создавать частичное представление или что? Мне нужно опубликовать это представление в следующем ActionResult:
[HttpPost]
public ActionResult Create(Customer customerToCreate)
{
return View();
}
Пожалуйста, предложите решение
Ответ №1:
Простое решение, переопределить toString() по адресу:
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public string City { get; set; }
public override ToString()
{
return string.Format("{0} {1}",Street,City);
}
}
И на ваш взгляд:
@model Customer
<div>
<label>First Name</label>
@Html.TextBoxFor<Customer,string>(m => m.Firstname)
</div>
<div>
<label>Last Name</label>
@Html.TextBoxFor<Customer,string>(m => m.Firstname)
</div>
<div>
<label>Billing Address</label>
@Html.TextBoxFor<Customer,string>(m => m.BillingAddress)
</div>
<div>
<label>Shipping Address</label>
@Html.TextBoxFor<Customer,string>(m => m.ShippingAddress)
<input name="ShippingAddress" />
</div>
<div>
<input type="submit" value="Save" />
</div>
Комментарии:
1. могу ли я сделать это, не используя строго типизированную модель? Я имею в виду без @Html.TextBoxFor<Customer,string>(m => m.ShippingAddress). Я создал частичное представление для адреса и использовал его, но метод post create не получает значения адреса
Ответ №2:
создайте строго типизированный вид. тип клиента.