문제가 생겼습니다. 각 행에 대한 양식이있는 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 });
}
모든 것이 좋아 컴파일합니다. 하지만 실행 수량이 항상 null 인 경우, 나는 int와 string을 같은 결과로 이미 시도했습니다.
도움이 될 것입니다. 감사합니다. .
하이이다
은 널이다. 셋째, 장바구니는 바인드 된 객체이므로 정상적으로 작동합니다. 그리고 추천자 어쩌면 UrlReferrer? 시간 내 줘서 고마워. – Gabriel
컨트롤러 개체 외부에서 도메인 개체를로드하지 않습니다. 시도 할 다음 것은 명시 적 type = "text"및 value = ""을 제거하는 것입니다. –
고맙습니다 !!!! 이제 해결되었습니다 ... 나는 value = ""를 제거하고 훌륭하게 작동합니다. 그것은 너무 작았 다 ... :) – Gabriel