У меня есть следующее частичное представление BuyProduct.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MvcMusicStore.Models.Product>" %>
<span class="price">Precio: <em><strong><%: Html.Price(Model) %></strong></em></span>
<div class="wrapper">
<% if (Model.Active) { %>
<% using (Html.BeginForm("AddToCart", "ShoppingCart", new { id = Model.ProductId }, FormMethod.Post, new { id = "addtocart-form" })) {%>
<% if (Model.MetricType == (int)ProductMetricType.Units) { %>
<%: Html.DropDownList("Quantity" , new SelectList(DropDownLists.Units , "Value", "Key" , Model.MetricType)) %>
<% } else { %>
<%: Html.DropDownList("Quantity", new SelectList(DropDownLists.Kilograms, "Value", "Key", Model.MetricType)) %>
<% } %>
<input type="submit" value="Comprar" />
<% } %>
<% } else { %>
<span class ="buttonBig">Sin existencias!</span>
<% } %>
</div>
Если я использую его в представлении, имя выпадающего списка остается неизменным, но если я использую его в EditorTemplate, например:
<%@ Import Namespace="MvcMusicStore"%>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MvcMusicStore.Models.Product>" %>
<li>
<h3><%: Html.Truncate(Model.Name, 25) %></h3>
<p><a href="<%: Url.Action("Details", "Store", new { id = Model.ProductId }) %>"><img alt="<%: Model.Name %>" src="<%: Model.ProductArtUrl %>" width="180" height="165" /></a></p>
<% Html.RenderPartial("BuyProduct", Model); %>
</li>
Код моего контроллера:
public ActionResult AddToCart(Guid id, int quantity = 1) {
К имени DropDownList добавляется префикс с именем класса модели ( Product.Quantity вставка Количество ) и мои действия больше не получают правильное значение, есть идеи, как их решить в обоих случаях?