Я хочу, чтобы корзина для покупок ajax, GetCarts и AddCart работали, но приемник RemoveRow не - параметр «strms». Когда alert (strms) в функции removeRow (strms) js, он показывает правильное значение идентификатора книги (равное 8). Но в отладке CartController/RemoveRow значение strms равно NULL. Я думаю, что это может быть проблема с маршрутизацией, но я думаю, что мои настройки маршрутов правильные! Пожалуйста, помогите мне.Параметр контроллера не приемника, переданный ajax POST в .Net MVC
Точка зрения _Layout.cshtml, которые содержат код JS Контроллер CartController
Мои RouteConfig.cs
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Sach", action = "Detail", id = "7" }
);
routes.MapRoute(
"Cart",
"{controller}/{category}/{ms}/{sl}",
new { controller = "Cart", action = "AddCart", ms = UrlParameter.Optional, sl = UrlParameter.Optional }
);
routes.MapRoute(
"CartRemoveRow",
"{controller}/{action}/{ms}",
new { controller = "Cart", action = "RemoveRow", ms = UrlParameter.Optional });
}
}
CartController.cs
public class CartController : Controller
{
List<CartItem> listCart;
[HttpPost]
public ActionResult GetCarts()
{
listCart = Cart.getCart(Session);
return PartialView("Cart", listCart);
}
public void AddCart(string ms, string sl) {
int masach = int.Parse(ms);
int soluong = int.Parse(sl);
Cart.AddCart(masach, soluong, Session);
//return PartialView("Default");
}
public void RemoveRow(string strms)
{
int ms1 = int.Parse(strms);
var sach = new Sach() { MaSach = ms1 };
Cart.removeCart(sach, true);
}
}
Ajax код расслоение плотной
<script type="text/javascript">
function showCart() {
// alert("1");
//Load content from CartController
$(function() {
//alert("2");
$.ajax({
type: "POST",
url: '@Url.Action("GetCarts", "Cart")',
success: function (data) {
var result = data;
$('#myCart').html(result);
//alert($('#myCart').html());
}
});
});
$("#myCart").modal('show');
}
function addCart(ms, sl) {
var masach = [];
masach.push(ms);
masach.push(sl);
// alert(masach);
$(function() {
$.ajax({
type: 'POST',
url: '@Url.Action("AddCart", "Cart")/'+ms+'/'+ $("#soluong").val(),
success: function (data) {
showCart();
}
});
return false;
});
}
function removeRow(strms){
$(function() {
// alert(strms);
$.ajax({
type: 'POST',
url: '@Url.Action("RemoveRow", "Cart")/' + strms,
success: function (data) {
showCart();
}
});
});
}
</script>