가격이 표시된 제품 목록이 표시된 가격 페이지가 있습니다. 사용자는 쇼핑 카트에 여러 제품을 추가하도록 선택할 수 있습니다 (활성 쇼핑 카트가 페이지의 오른쪽에 표시됨). 뷰 모델에서 사용할 수있는 제품 죽 루핑 및 표시 사항 : 당신이에서 볼 수 있듯이ASP.NET MVC 장바구니 및 jQuery
<% foreach (var _product in _supplier.HotelProducts)
{ %>
<tr>
<td colspan="2" align="left" valign="top"><% = _product.Description %></td>
<td align="left">
<% using (Html.BeginForm("AddToCart", "ShoppingCart", FormMethod.Post, new { @class = "addProductToCartForm" }))
{ %>
<input type="hidden" name="hSupplierID" id="hSupplierID" value="<% = _supplier.ID %>" />
<input type="hidden" name="hProductCode" id="hProductCode" value="<% = _product.Code %>" />
<input type="hidden" name="hProductDescription" id="hProductDescription" value="<% = _product.Description %>" />
<input type="hidden" name="hProductPrice" id="hProductPrice" value="<% = _product.TotalPrice %>" />
<input type="submit" value="+ Add to cart" />
<% } %>
</td>
<td valign="top" align="center">
<span id="spanProductPrice" class="_price">$<% = _product.TotalPrice %></span>
</td>
</tr>
<% } %>
현재이
코드 내보기 (ASPX)에서 ... 나는 아약스/jQuery를 사용하여 구현하는 방법이다 코드 스 니펫 위의 "각 장바구니에 담기"버튼을 클릭하면 각 제품이 다시 제공되며 내 요구 사항은 공급 업체 ID 및 제품 세부 정보 (코드, 설명 번호 & 가격)를 제 컨트롤러와 장바구니에 전달하는 것입니다. 제품 번호가 &이고 외부 웹 서비스에서 가격을 책정 했으므로 제품 코드를 전달하고 해당 설명을 서버 측에서 & 가격으로 검색 할 수있는 방법이 없습니다. 따라서 사용자가 추가 할 때 필요한 제품 세부 정보를 캡처해야합니다. 그것은 장바구니에. [1] 더 나은 방법으로는
있습니까
: 여기$(function() {
$(".addProductToCartForm").submit(function (e) {
e.preventDefault();
var HiddenCartForm = {
SupplierID: $(this.hSupplierID).val(),
Code: $(this.hProductCode).val(),
Description: $(this.hProductDescription).val(),
TotalPrice: $(this.hProductPrice).val()
};
$.post($(this).attr("action"), HiddenCartForm, function (data) {
//alert("Success");
renderCart(data);
});
return false; // form already submitted using ajax, don't submit it again the regular way
});
});
function renderCart(data) {
$("#rightColumn").html(data);
}
내가 두 질문이 나는 JQuery와
public class HiddenCartForm
{
public string SupplierID { get; set; }
public string Code { get; set; }
public string Description { get; set; }
public decimal? TotalPrice { get; set; }
//public ProductView Product { get; set; }
}
를 통해 컨트롤러로보기에서 정보를 전달하는 데 사용 내 사용자 지정 HiddenCartForm 개체입니다 이 시나리오를 처리합니까? 보기에 많은 형식 & 숨김 필드 (공급 업체 ID & 제품 세부 정보 보유)가 거의 불편하지 않습니다. 이 양식 & 숨겨진 필드는 누군가가 소스를 볼 때 표시됩니다.
[2] 사용자가 장바구니에 특정 제품을 추가 할 때 "_product"의 모든 정보가 필요합니다. 숨겨진 필드를 사용하는 대신 JQuery를 통해이 정보를 전달할 수있는 더 좋은 방법이 있습니까? 내 제품에 foreach (var _product in _supplier.HotelProducts)
의 정보가 반복됩니다.
현재 MVC 2를 사용 중입니다.
Kevin, 외부 WebService를 호출하여 제품 및 가격 목록을 얻었습니다.이 정보는 로컬 DB에 저장되지 않습니다 ... 따라서 제품 코드를 전달하고 해당 설명 및 가격을 검색 할 방법이 없습니다. 따라서 사용자가 장바구니에 추가 할 때 필요한 제품 세부 정보를 캡처해야합니다. 공급자에 대한 추가 정보를 표시해야하지만 로컬 DB에 공급자 데이터가 있으므로 SupplierID를 전달하고 컨트롤러에서 다른 정보를 조회하지만 제품에 대해 동일한 작업을 수행 할 수는 없습니다. ( – Alex
제품 및 가격 데이터를 외부 웹 서비스에 전화 할 때 (그리고 일정 기간 후에 삭제) 문제가됩니다. 숨겨진 필드에 저장하는 문제는 사용자가 데이터를 변경하는 것이 쉽지 않은 경우입니다 (예 : 가격을 0 달러로하고 무료로 상품을 받으십시오.) –
감사합니다. 케빈, 저 라인을 생각하고 있습니다. – Alex