Asp.net 从操作方法返回自定义数据和actionresult

Asp.net 从操作方法返回自定义数据和actionresult,asp.net,model-view-controller,actionresult,Asp.net,Model View Controller,Actionresult,我相信很多人都有过这个问题,但我在搜索网页后没有得到任何结果,所以或者搜索关键字不同 我正在开发一个新的asp.net mvc web应用程序,在该应用程序中,我得到一个由控制器上的索引操作方法返回的普通模板。稍后,在DoTr.Read事件处理程序中,我动态地构建UI并将DOM元素追加到空白模板中,这很好。我的问题是这里需要两个服务器调用 1) 从索引操作方法获取视图的步骤 2) document.ready{}中的ajax调用,以获取用于构建ui的数据 我想知道是否有任何方法可以将索引操作方法

我相信很多人都有过这个问题,但我在搜索网页后没有得到任何结果,所以或者搜索关键字不同

我正在开发一个新的asp.net mvc web应用程序,在该应用程序中,我得到一个由控制器上的索引操作方法返回的普通模板。稍后,在DoTr.Read事件处理程序中,我动态地构建UI并将DOM元素追加到空白模板中,这很好。我的问题是这里需要两个服务器调用

1) 从索引操作方法获取视图的步骤

2) document.ready{}中的ajax调用,以获取用于构建ui的数据

我想知道是否有任何方法可以将索引操作方法中的数据与空白模板视图一起传递回来,并使用这些数据在DoCuto.Read事件处理程序中创建UI。这将为服务器节省一次额外的点击

不使用局部视图的原因如下:

1) 我们已经在jquery和jquery中开发了一些功能

2) 在my org中,人们认为使用razor和partial view来实现功能不会那么灵活,例如,在js中构建和提升customevent是一个很好的功能,它有助于保持功能与其他功能松散耦合。(如果我们错了,请更正)

编辑:我想用一个例子可以更好地解释这一点

假设我需要创建一个用户列表,但整个列表及其复选框选择等功能都是由js模块构建的。因此,随着空白视图,我想通过“用户”对象,这是当前模型中的一个类。
请建议。

您有两种选择:

1) 服务器端呈现:

将必要的数据放入模型似乎是显而易见的事情……这就是MVC模型的用途

在构建HTML的过程中,视图代码会运行,因此您可以访问Razor代码中的模型值,您可以使用这些值构建视图并影响最终的HTML。因此,在这个场景中,您使用Razor构建视图,而不是使用JS代码构建视图。当然,在页面加载后,您仍然可以使用JS对其进行更改,但它将被下载到浏览器中,并且HTML已经处于所需的启动状态

2) 客户端渲染,但预填充必要的数据:

如果您希望继续使用现有的客户端呈现代码,那么可以使用Razor将一些现成的JSON注入JavaScript,这样在页面第一次运行时就可以将其有效地硬编码到页面中,而不必通过AJAX从服务器单独获取


例如,如果您在C#中有一个保存数据的对象,您可以将其序列化为JSON字符串,然后使用Razor将该字符串写入JS中的正确位置

您的索引文件已经有模型了吗?将必要的数据放入模型似乎是显而易见的事情……这就是MVC模型的用途。不确定您是否真的需要局部视图,除非您希望在另一个视图中的其他位置重复使用同一演示文稿是的,我确实有一个模型类,可以传递给视图,但是如何在客户端传递或访问jquery可以用来构建ui的数据?正如我所想,return view()只返回htlm。很抱歉,如果这是琐碎的,请从这里开始。确实如此,但是在构建HTML的过程中,您的视图代码会运行-因此您可以访问Razor代码中的模型值,您可以使用它来构建视图并影响最终的HTML。如果您不理解这一点,请阅读Microsoft提供的介绍性MVC教程,它将向您展示此类内容的基本示例。同样,这是MVC框架的基础之一,它使它变得有用。谢谢!我会查一下。哦,对不起,我确实明白你的意思,但正如我在查询中提到的,我们没有使用razor,而是使用jquery在客户端构建ui,因此使用razor构建html不是一个选项,因为这里的固有设计。希望这能把事情弄清楚。