C# 如何使用AJAX-MVC更新每个注释
我有一个页面,员工可以C# 如何使用AJAX-MVC更新每个注释,c#,ajax,asp.net-mvc,C#,Ajax,Asp.net Mvc,我有一个页面,员工可以在每个RMA/产品下添加/编辑/删除他们自己的评论。添加方法其工作罚款员工可以在每个RMA/产品下添加他们自己的评论,删除方法也可以为每个评论工作罚款,但是我确实对每个评论的编辑方法有问题,让我解释一下与tblRMA_历史和tblComments的第一个关系,我在其中加入了tbl评论(RMAID)具有tbl RMA_历史(ID)(获取与哪个RMA相关的评论)。 设计Tbl RMA_历史: Id int描述文本132 somevalue133 somevalue 设计T
在每个RMA/产品下添加/编辑/删除他们自己的评论。添加方法其工作罚款员工可以在每个RMA/产品下添加他们自己的评论,删除方法也可以为每个评论工作罚款,但是我确实对每个评论的编辑方法有问题,让我解释一下与tblRMA_历史
和tblComments
的第一个关系,我在其中加入了tbl评论(RMAID)具有tbl RMA_历史(ID)(获取与哪个RMA相关的评论)。
- 设计Tbl RMA_历史:
Id int
描述文本
132 somevalue
133 somevalue
- 设计Tbl注释:
ID int
RMAID int
MSG text
1 132你好世界
2 132史密斯约翰
3 132再见
4 133测试
- 网址:
当我尝试将评论编辑到其他内容,然后点击提交按钮更新评论,但没有运气更新不起作用:(并且我还在UpdateComments操作中进行了调试,但它为空。
有谁能帮我或给我指出正确的方向吗!
提前感谢:)
视图:
UpdateComments操作:
//List Of Comments Action
public ActionResult RMA(int? id, VMRMA model)
{
var queryTwo = (from RH in db.RMA_History
join Com in db.Comments on RH.Id equals Com.RMAID
where Com.RMAID == id
select new VMRMA.Comment_List
{
PM = Com.MSG,
ID = Com.ID,
Date = Com.Date,
Forfatter = Com.Writer,
whos = Com.Seen,
RMAID = Com.RMAID
});
}
model.Comment_Lists = queryTwo.ToList();
return View(model);
//UpdateComments Action
public JsonResult UpdateComments(VMRMA model)
{
var u = db.Comments.Where(a => a.ID == model.ID).FirstOrDefault();
if (u != null)
{
u.MSG = model.SMS;
u.ID = model.ID;
db.SaveChanges();
}
return Json(u, JsonRequestBehavior.AllowGet);
}
VM和注释列表视图模型:
public class VMRMA
{
public int ID { get; set; }
public string SMS{ get; set; }
public int? RMAID { get; set; }
public List<Comment_List> Comment_Lists { get; set; }
public class Comment_List
{
public Comment_List()
{
}
public Comment_List(string PM, int? ID, DateTime Date, string Forfatter , string whos , int? RMAID)
{
this.PM = PM;
this.ID = ID;
this.Date = Date;
this.Forfatter = Forfatter;
this.whos = whos;
this.RMAID = RMAID;
}
public int? ID { get; set; }
public string PM { get; set; }
public DateTime Date { get; set; }
public string Forfatter { get; set; }
public string whos { get; set; }
public int? RMAID { get; set; }
}
}
公共类VMRMA
{
公共int ID{get;set;}
公共字符串SMS{get;set;}
公共int?RMAID{get;set;}
公共列表注释\列表{get;set;}
公共类注释列表
{
公众评论列表()
{
}
公共评论列表(字符串PM、int?ID、DateTime日期、字符串Forfatter、字符串whos、int?RMAID)
{
this.PM=PM;
this.ID=ID;
这个日期=日期;
这个。Forfatter=Forfatter;
this.whos=whos;
this.RMAID=RMAID;
}
公共int?ID{get;set;}
公共字符串PM{get;set;}
公共日期时间日期{get;set;}
公共字符串Forfatter{get;set;}
公共字符串whos{get;set;}
公共int?RMAID{get;set;}
}
}
我在你发布的代码中看不到UpdateComments操作如何被调用。是否有更多你没有发布的视图代码?比如周围的表单或javascript?@G\P我很糟糕,我放弃了添加AJAX部分sry,我只是补充说如果你从浏览器中查看AJAX帖子,是否在那里设置了值?如果是,你不能将UpdateComments方法从UpdateComments(VMRMA模型)更改为UpdateComments(int-ID,string-SMS)@G_P是它的集合,而不是在模式中biniding,将参数的值传递给我以前做过的控制器,但调试它时没有运气告诉我它的null尝试在UpdateComments操作中设置断点,并在调试器中查看请求对象-其中有值吗?
//UpdateComments Action
public JsonResult UpdateComments(VMRMA model)
{
var u = db.Comments.Where(a => a.ID == model.ID).FirstOrDefault();
if (u != null)
{
u.MSG = model.SMS;
u.ID = model.ID;
db.SaveChanges();
}
return Json(u, JsonRequestBehavior.AllowGet);
}
public class VMRMA
{
public int ID { get; set; }
public string SMS{ get; set; }
public int? RMAID { get; set; }
public List<Comment_List> Comment_Lists { get; set; }
public class Comment_List
{
public Comment_List()
{
}
public Comment_List(string PM, int? ID, DateTime Date, string Forfatter , string whos , int? RMAID)
{
this.PM = PM;
this.ID = ID;
this.Date = Date;
this.Forfatter = Forfatter;
this.whos = whos;
this.RMAID = RMAID;
}
public int? ID { get; set; }
public string PM { get; set; }
public DateTime Date { get; set; }
public string Forfatter { get; set; }
public string whos { get; set; }
public int? RMAID { get; set; }
}
}