У меня проблема, мне нужен webgrid с формой для каждой строки, я достиг этого, но когда я нажимаю кнопку отправки, контроллер не получает входной текст.Форма внутри MVC WebGrid
Это код для просмотра:
@grid.GetHtml(
tableStyle: "mGrid",
headerStyle: "head",
alternatingRowStyle: "alt",
rowStyle: "altRow",
columns: grid.Columns(
grid.Column(columnName: "Id", header: "Id", style: "prefix"),
grid.Column(columnName: "Trademark", header: "Marca", style: "trademark"),
grid.Column(columnName: "Price", header: "Precio", style: "price", format: @<text>@item.Price.ToString("N2")</text>),
grid.Column(format: (item) =>
{
System.Text.StringBuilder html = new System.Text.StringBuilder();
html.Append("<form action=\"/Cart/AddToCart\" method=\"get\">");
html.Append("<input type=\"text\" value=\"\" style=\"width:50px; text-align:center; \" name=\"quantity\" id=\"quantity\" />");
html.Append("<input type=\"submit\" value=\"Agregar\" class=\"btnAdd\" />");
html.Append("<input type=\"hidden\" name=\"productId\" value=\"" + item.Value.Id + "\"/>");
html.Append("<input type=\"hidden\" name=\"returnUrl\" value=\"" + Request.Url + "\"/>");
html.Append("</form>");
return new HtmlString(html.ToString());
}
)
)
)
И это часть контроллера:
public class CartController : Controller
{
private IDataRepository repository;
...
public RedirectToRouteResult AddToCart(Cart cart, int productId, int quantity, string returnURL)
{
Product product = repository.Products.FirstOrDefault(p => p.Id == productId);
if (product != null)
cart.AddItem(product, quantity);
return RedirectToAction("Index", new { returnURL });
}
Все компилировать Ok. Но когда количество выполнения всегда равно null, я уже пробовал количество как int и строку с тем же результатом.
Любая помощь будет хорошей. Спасибо.
Привет, о второй точке, равна нулю, когда я пытался количество в виде строки, когда количество используется как брошено целое ошибка. В-третьих, Cart является связанным объектом, это прекрасно работает. А Referrer, возможно, UrlReferrer? Спасибо за ваше время. – Gabriel
Я до сих пор не загружал объект домена вне действия контроллера. следующая вещь, чтобы попытаться удалить явный тип = "текст" и значение = "". –
СПАСИБО !!!! Теперь он исправлен ... я удалил value = "", и он отлично работает. Это было так мало ... :) – Gabriel