C# 多个Ajax.begin无法使用mvc

C# 多个Ajax.begin无法使用mvc,c#,ajax,asp.net-mvc-4,C#,Ajax,Asp.net Mvc 4,我正在使用c mvc删除html表中动态生成的行。我成功地完成了第一次删除。其次,我只能在重新加载页面时删除。这是一次加载时仅发生一次删除。我的问题是什么 局部视图 主视图管理器 控制器 试一试 尝试将使用Razor创建按钮id的方式从delete_@i更改为delete_@i,否则所有按钮都将具有相同的id,并且无法按预期工作 i、 e,像这样换行 <input type="submit" value="delete" id="delete_@(i)"/> 我测试了你的.csht

我正在使用c mvc删除html表中动态生成的行。我成功地完成了第一次删除。其次,我只能在重新加载页面时删除。这是一次加载时仅发生一次删除。我的问题是什么

局部视图

主视图管理器

控制器

试一试


尝试将使用Razor创建按钮id的方式从delete_@i更改为delete_@i,否则所有按钮都将具有相同的id,并且无法按预期工作

i、 e,像这样换行

<input type="submit" value="delete" id="delete_@(i)"/>

我测试了你的.cshtml代码,如下所示,它可以工作。我认为您需要仔细检查控制器中的代码,在Get和Post操作中,您正在创建一个新的db context FoodContext实例。尝试在请求上下文中使用单个实例

模型

_PartialView.cshtml


您是否收到错误消息?或者mydiv只是没有被替换?只有一次它正在删除。没有错误,正如我说的,有一次它正在替换。下次它也没有删除,这不会产生问题。Hi delete_@I正在获取不同的id
<div class="mycontainer">   
  <div id="mydiv">
     @{Html.Action("CartManager","Cart");}   
  </div>   
</div> 
    public ActionResult CartList()
    {
        string user = "jaddu";
        FoodContext db = new FoodContext();
        List<CartListing> fd = (from e in db.FoodItems
                                  join o in db.Carts on e.itemid equals o.itemid 
                                  where o.username==user
                                  select new CartListing 
                                  {
                                   ItemId=e.itemid,
                                   CartId=o.cartid,
                                   Itemname =e.itemname,
                                   Amount =o.amount,
                                   Price=(float)(e.price*o.amount),
                               }).ToList();
          CartModel vm = new CartModel { CartListings = fd };
          return PartialView("_CartListing",vm);    
    }

    [HttpPost]
    public ActionResult DeleteCart(int cartid)
    {
        string user = "jaddu";
        FoodContext db = new FoodContext();
        Cart car = db.Carts.Single(f => f.cartid == cartid);
        db.Carts.DeleteObject(car);
        db.SaveChanges();
        List<CartListing> fd = (from e in db.FoodItems
                                join o in db.Carts on e.itemid equals o.itemid
                                where o.username == user
                                select new CartListing
                                {
                                    ItemId = e.itemid,
                                    CartId = o.cartid,
                                    Itemname = e.itemname,
                                    Amount = o.amount,
                                    Price = (float)(e.price * o.amount),
                                }).ToList();
        CartModel vm = new CartModel { CartListings = fd };
        return PartialView("_CartListing", vm);
    }
using (Ajax.BeginForm("DeleteCart", "Cart", new { cartid = ct.CartId }, new AjaxOptions()
{
    HttpMethod = "Post",
    OnSuccess = "onSuccess",
    UpdateTargetId = "mydiv",
    InsertionMode = InsertionMode.Replace,
}, new {id="Form"+i }))
<input type="submit" value="delete" id="delete_@(i)"/>
 public class Article
    {
        public int Id { get; set; }
        public string ArticleContent { get; set; }
    }
@model IEnumerable<WebApplication6.Models.Article>
    <table width="100%">

        @foreach (var ct in Model)
        {
            i = i + 1;
            using (Ajax.BeginForm("DeleteArticle", "Home", new { Id = ct.Id }, new AjaxOptions()
         {
             HttpMethod = "Post",
             OnSuccess = "onSuccess",
             UpdateTargetId = "mydiv"
         }, new { id = "Form" + i }))
            {
                <tr>
                    <td style="padding-left:20px;">
                        @ct.ArticleContent
                </td>
                <td style="padding-left:20px;">
                    @ct.Id
                </td>
                <td>
                    <input type="submit" value="delete" id="delete_@i" />
                </td>
            </tr>
            }
        }
    </table>
 MyDbContext _db = new MyDbContext();
public ActionResult ArticleList()
        {
            var vm = _db.Articles.ToList();
            return PartialView("_CartListing", vm);
        }

        [HttpPost]
        public ActionResult DeleteArticle(int Id)
        {
            var a = _db.Articles.Find(Id);
            _db.Articles.Remove(a);
            _db.SaveChanges();

            var vm = _db.Articles.ToList();
            return PartialView("_CartListing", vm);
        }