Ajax.Begin表单无法呈现正确的动作.NET MVC4

迪达马尔

我的Ajax表单遇到了一个奇怪的问题。当用户单击“添加到购物车”按钮时,我试图发布到我的购物车控制器。我只想从隐藏字段中发布产品ID,然后返回一个字符串并使用成功失败消息更新div。我认为以下剃刀标记...

@using (Ajax.BeginForm("AddToCart", "Carts", new AjaxOptions { OnSuccess="OnSuccess", HttpMethod="Post", Url="/Carts/AddToCart/"  }, new { @style = "display:inline-block"}))
        {
            @Html.HiddenFor(model => model.Product_ID)
            <input type="submit" class="button round large primary" value="Add To Cart" />
        }

在我的购物车控制器中,我将以下代码添加到购物车,并返回一个字符串,我可以使用javascript更新要显示消息的div或具有适合我的框架句柄。

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult AddToCart(int product_ID)
        {
            if (db.Products.Any(product => product.Product_ID == product_ID))
            {
                //var successfulAddToCart = false;
                var cartItem = new Cart();

               // cartItem.CartID = Guid.NewGuid();

                if (Request.IsAuthenticated)
                {
                    cartItem.Customer = db.Customers.FirstOrDefault(customer => customer.Email == User.Identity.Name);
                }                    
                else//not logged in, need to remember them somehow
                {

                    var CartCookie = new HttpCookie("CartID", Guid.NewGuid().ToString());
                    CartCookie.Expires.AddDays(2);
                    Request.Cookies.Add(CartCookie);
                    cartItem.Customer = new Customer();
                }


                cartItem.IsCheckedOut = false;
                cartItem.Quantity = 1;
                cartItem.Sku = db.SKU_Table.FirstOrDefault(sku => sku.Product_ID == product_ID);

                db.Cart.Add(cartItem);
                db.SaveChanges();


                return Content("Add to cart was successful");
            }
            else
                return Content("Add to cart was not successful");


        }

现在,我遇到的主要问题是使用错误的动作呈现了表单。这是用html呈现的内容。

标记的HTML呈现

现在我不知道在MVC中执行此操作的正确方法是什么,因为我对框架有点陌生,但是如果有更好的方法,我想避免在javascript中进行AJAX调用。我不确定由于dom上的操作不正确而导致事故的原因是什么。我怀疑这与我的route.config文件有关,就像我更改文件中的顺序或路由一样,它们对操作结果有影响。如果相关,我可以在更新中发布,但我认为我会将其扔给Stack Overflow专业人士。谢谢你。

用户名

您使用了错误的重载,其中第二个参数是路由值,这就是您得到的原因....?Length=5string具有一个名为属性,Length并且在'Carts'中有5个字符)。使用此重载(并删除不必要的Url选项)

@using (Ajax.BeginForm("AddToCart", "Carts", new { product_ID = Model.Product_ID }, 
    new AjaxOptions { OnSuccess="OnSuccess", HttpMethod="Post" }, 
    new { @style = "display:inline-block"}))
{
    <input type="submit" class="button round large primary" value="Add To Cart" />
}

还要注意,您不需要的隐藏输入,Product_ID因为它已经被添加为路由/查询字符串值。

另请注意,默认值HttpMethod默认值"Post"因此不必添加该选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

asp.net mvc4 ajax动作链接

来自分类Dev

AJAX图片上传MVC4 ASP.Net无法正常工作

来自分类Dev

无法从Ajax MVC4获取参数

来自分类Dev

asp.net mvc4 ajax action link

来自分类Dev

asp.net mvc4 jquery从ajax获取值

来自分类Dev

Highcharts无法在我的MVC4 .NET项目中呈现

来自分类Dev

MVC4表单身份验证+ AJAX操作

来自分类Dev

MVC4 ajax调用并正确返回数据

来自分类Dev

如何通过.Net MVC4中带有JSON的ajax调用将复杂的视图模型传递到控制器动作中?

来自分类Dev

将列表<T>从控制器返回到ASP.NET MVC4中的Ajax

来自分类Dev

在ASP.NET MVC4中使用jquery,AJAX插入数据?

来自分类Dev

ASP.NET MVC4手动Ajax发布验证

来自分类Dev

如何在ASP.NET MVC4中启用Ajax

来自分类Dev

Json无法从MVC4中的jQuery AJAX调用正确解析

来自分类Dev

Crystalreportviewer无法呈现(asp.net MVC4剃刀语法)

来自分类Dev

jQuery DataTables如何在MVC4中应用于AJAX呈现的局部视图?

来自分类Dev

jQuery DataTables如何在MVC4中应用于AJAX呈现的局部视图?

来自分类Dev

从Ajax表单加载的MVC4 WebGrid-排序和分页时多次调用Controller

来自分类Dev

无法在MVC4中使用AJAX下载Excel文件

来自分类Dev

未指定ASP.Net MVC4 HandleError呈现视图

来自分类Dev

MVC4 Ajax jQuery 2

来自分类Dev

如何使用ASP .NET MVC4从其他表单获取复选框值?

来自分类Dev

保护ASP.NET MVC4中的视图:表单身份验证

来自分类Dev

用于WinForms,MVC4和WCF API的.NET表单验证库

来自分类Dev

无法解析.NET MVC 4中的Ajax POST

来自分类Dev

.Net MVC4文化设置正确,但验证仍为英文

来自分类Dev

无法获取asp.net MVC4 DropDownList()具有预设值

来自分类Dev

无法在asp.net mvc4 Web应用程序中使ninject工作

来自分类Dev

安装KB2993928后,ASP.NET MVC4解决方案无法生成

Related 相关文章

  1. 1

    asp.net mvc4 ajax动作链接

  2. 2

    AJAX图片上传MVC4 ASP.Net无法正常工作

  3. 3

    无法从Ajax MVC4获取参数

  4. 4

    asp.net mvc4 ajax action link

  5. 5

    asp.net mvc4 jquery从ajax获取值

  6. 6

    Highcharts无法在我的MVC4 .NET项目中呈现

  7. 7

    MVC4表单身份验证+ AJAX操作

  8. 8

    MVC4 ajax调用并正确返回数据

  9. 9

    如何通过.Net MVC4中带有JSON的ajax调用将复杂的视图模型传递到控制器动作中?

  10. 10

    将列表<T>从控制器返回到ASP.NET MVC4中的Ajax

  11. 11

    在ASP.NET MVC4中使用jquery,AJAX插入数据?

  12. 12

    ASP.NET MVC4手动Ajax发布验证

  13. 13

    如何在ASP.NET MVC4中启用Ajax

  14. 14

    Json无法从MVC4中的jQuery AJAX调用正确解析

  15. 15

    Crystalreportviewer无法呈现(asp.net MVC4剃刀语法)

  16. 16

    jQuery DataTables如何在MVC4中应用于AJAX呈现的局部视图?

  17. 17

    jQuery DataTables如何在MVC4中应用于AJAX呈现的局部视图?

  18. 18

    从Ajax表单加载的MVC4 WebGrid-排序和分页时多次调用Controller

  19. 19

    无法在MVC4中使用AJAX下载Excel文件

  20. 20

    未指定ASP.Net MVC4 HandleError呈现视图

  21. 21

    MVC4 Ajax jQuery 2

  22. 22

    如何使用ASP .NET MVC4从其他表单获取复选框值?

  23. 23

    保护ASP.NET MVC4中的视图:表单身份验证

  24. 24

    用于WinForms,MVC4和WCF API的.NET表单验证库

  25. 25

    无法解析.NET MVC 4中的Ajax POST

  26. 26

    .Net MVC4文化设置正确,但验证仍为英文

  27. 27

    无法获取asp.net MVC4 DropDownList()具有预设值

  28. 28

    无法在asp.net mvc4 Web应用程序中使ninject工作

  29. 29

    安装KB2993928后,ASP.NET MVC4解决方案无法生成

热门标签

归档