控制器操作可以用于常规Web请求和ajax调用吗?

时间:2009-12-24 18:33:59

标签: asp.net-mvc

可以将控制器操作用于常规Web请求和ajax调用吗?

对于常规Web请求,该操作将接受表单集合,将类别与文章相关联,然后重定向到另一页面。

对于ajax请求,它会将类别与文章相关联,但不会重定向,而是会发回某种响应消息。

这是一个好习惯还是我应该创建2个动作?

4 个答案:

答案 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还是普通请求才能处理这两者。