gpt4 book ai didi

c# - 如果操作是 ajax 或通用子操作,则返回部分 View

转载 作者:行者123 更新时间:2023-11-30 13:17:00 25 4
gpt4 key购买 nike

我在谷歌上烧毁了试图构建某种类型的类,它将普遍确定它是 AJAX 调用还是子操作。这样我的 Controller 就可以确定是返回部分 View 还是完整 View 。到目前为止,我运气不佳。目前我正在使用以下代码来实现这一点:

 if (Request.IsAjaxRequest() || ControllerContext.IsChildAction)
{
return PartialView();
}
return View();

问题是您必须在 Controller 中的每个 Action 和您遇到的每个条件中执行此操作,但我确信有一种方法可以通过帮助程序实现此目的,但无法弄清楚如何实现。你能给我指出任何链接/示例代码来实现这一点吗?

编辑:

@Aron 我已经发布了一段代码,因为整个 Controller 太长了。但是你可以看到我的困境。返回包含一个 View 和一个对象/模型“k”。

public ActionResult _Details_Message(int id = 0, int CId = 0)
{
ViewBag.MrnSortParm = CId;
if (id != 0)
{
var k = mrn.MRNS.Where(u => u.Id == id).SingleOrDefault();
if (k.To == User.Identity.Name)
{
if (k.Type == 0) // message
{
k.Read = true;
mrn.Entry(k).State = EntityState.Modified;
mrn.SaveChanges();
}
return PartialView("_Details_Message", k);//replace the above code here
}
if (k.From == User.Identity.Name)
{
return PartialView("_Sent", k); //replace the above code here
}
}
var m = new message();
m.CourierId = CId;
return PartialView("_Create_Message", m); //replace the above code here
}

编辑 2我找到了一个答案,它不是辅助函数,而是 View 中的修改。链接是here .可以将我自己的问题标记为重复:(

最佳答案

一个简单的解决方案可能是在 Views 文件夹下的 _ViewStart.cshtml 文件中使用类似的代码:

@{
Layout = Request.IsAjaxRequest() || ViewContext.IsChildAction
? null
: "~/Views/Shared/_Layout.cshtml";
}

使用该代码,您可以从所有操作中return View();

由于所有 View 都经过该步骤,因此这可能是您的通用解决方案。

关于c# - 如果操作是 ajax 或通用子操作,则返回部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689831/

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