可以将控制器操作用于常规Web请求和ajax调用吗?
对于常规Web请求,该操作将接受表单集合,将类别与文章相关联,然后重定向到另一页面。
对于ajax请求,它会将类别与文章相关联,但不会重定向,而是会发回某种响应消息。
这是一个好习惯还是我应该创建2个动作?
答案 0 :(得分:1)
创建两个对业务逻辑使用相同方法的操作。保持这一点的人会感谢你。
答案 1 :(得分:1)
我首选的方法是
public ActionResult UpdateJS(int id)
{
var retVal = Update(id);
return View("UpdateJS", retVal);
}
public ActionResult UpdateReg(int id)
{
var retVal = Update(id);
return View("UpdateReg", retVal);
}
public object Update(int id)
{
//Do something here
return id;
}
答案 2 :(得分:0)
我认为最好将操作分开,并在控制器中使用私有方法尽可能多地重用代码。
我很确定可以检测到ajax调用,但它有点伤害单一责任原则。
答案 3 :(得分:0)
每当ajax的写操作对任何没有JS的用户负责时,这是一个很好的做法,因此每个ajax操作都应该控制请求是来自ajax还是普通请求才能处理这两者。