gpt4 book ai didi

asp.net-mvc-3 - MVC和ajax : Should I create more views?

转载 作者:行者123 更新时间:2023-12-01 01:26:43 24 4
gpt4 key购买 nike

我正在使用 EF 开发一个 MVC3 应用程序,我想使用 jQuery ajax 使 UI 流畅,用户将能够通过 url 进行导航,如果他知道的话,或者他可能会收到指向特定的链接路线,但是,一旦页面完全加载,它就需要流畅,所以我想出了一个想法,我想在对解决方案进行更改之前在这里讨论它。

这是我的想法:

TestController.cs(为简单起见,省略了方法代码)

public ActionResult Index() { ... }

public ActionResult Create() { ... }
[HttpPost]
public ActionResult Create(Test test) { ... }

public ActionResult Update(int testID) { ... }
[HttpPost]
public ActionResult Update(Test test) { ... }

public ActionResult Delete(int testID) { ... }
[HttpPost]
public ActionResult Delete(Test test) { ... }

到目前为止,它看起来像大多数 Controller 。我的看法如下:

Views\Test\List.cshtml
Views\Test\Create.cshtml
Views\Test\Details.cshtml
Views\Test\Delete.cshtml

现在,因为我想异步执行它:我已经更改了 ListView ,以便我可以在列表中添加、修改和删除,到目前为止,一切都非常顺利。另外,用户仍然可以使用 url 浏览应用程序,请注意,应用程序内的每个链接都将执行 ajax 请求来完成实际工作,没有路由/操作链接。

现在应用程序正在按预期工作,但现在我遇到了一些事情:有一些 View 我需要是 ActionResult 和 PartialViewResult,那是因为用户可以输入 url:“/Admin/Test”,其中应该返回完整页面,或者可以单击一个 anchor ,该 anchor 将仅加载“/Admin/Test”的内容并显示它。为了避免著名的页内页错误我写了一个 function发送请求,当请求到达时,它只选择我需要的内容,避免页面内的页面,并重复 View ,但是,响应是整个页面,我不需要说,它不是最好的选择,但由于应用程序将由 lan 使用,我不太关心响应的有效负载,但随后我需要在 View 内编写 javascript 代码,所以我的解决方案就像 null 因为使用 jQuery 选择器只获取我需要的内容,但 javascript 不存在。

至于我的新解决方案来解决我的上一个解决方案:我想我可以按原样保留原始 View ,并创建另一个 View ,在原始名称后附加单词“Partial”,在 Controller 中使用相同的命名约定创建另一个方法,并将新路由添加到我的路由表中。

总而言之,我需要的是以下内容:- 如果用户输入“/Test”,响应应该是整个页面,像以前一样加载,屏幕闪烁白色等。- 但是,如果用户单击导航栏中的“测试”链接,响应应该是异步的,并且仅刷新我的布局的内容。

有什么想法吗?想法?有什么建议吗?

最佳答案

在你的actionmethod中你可以有

 if (Request.IsAjaxRequest())
return PartialView("_somePartialView");
else
return PartialView("_someOtherPartialView");

关于asp.net-mvc-3 - MVC和ajax : Should I create more views?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com