首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >完全回发和AJAX回发都需要一个控制器操作,还是拆分成两个操作?

完全回发和AJAX回发都需要一个控制器操作,还是拆分成两个操作?
EN

Stack Overflow用户
提问于 2012-01-03 02:20:47
回答 3查看 388关注 0票数 1

如果我们在单个控制器操作中处理正常的(完整的)回发和AJAX回发,则该方法很可能非常庞大。大量处理返回的if..else语句(返回常规视图、部分视图和JSON成功字符串)、对ModelState错误的不同处理等等。

但是,将其分为两个操作,例如CreateCreateAjax,意味着必须维护类似代码的两个实例。

您有什么建议可以使操作简单,同时又能涵盖两种回发场景?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-03 02:25:54

我将有两个方法,Create和CreateAjax,并考虑重构代码,以便将任何重复的代码放入助手类或服务中。

票数 4
EN

Stack Overflow用户

发布于 2012-01-03 02:27:03

我建议将负责ajax部分的所有代码放到一个看起来干净的单独ActionResult中。

票数 0
EN

Stack Overflow用户

发布于 2012-01-03 02:29:54

有许多选项,您可以通过一个操作来处理它,如下所示:

代码语言:javascript
运行
复制
public ActionResult DoSomething(...)
{
    if (Request.IsAjaxRequest())
        return DoSomethingAjax(..);
    else
       return DoSomethingStandard(..);
}

private ActionResult DoSomethingAjax(..) { }

private ActionResult DoSomethingStandard(..) { }

您可以创建一些工厂组件来完成这项工作,并从这两个方法调用:

代码语言:javascript
运行
复制
public ActionResult DoSomething()
{
    return DoSomethingFactory.Do();
}

public ActionResult DoSomethingAjax()
{
    return DoSomethingFactory.Do();
}

您可以使用分部类来拆分回发操作处理程序和AJAX处理程序。

一些想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8704018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档