Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ModelState.IsValid中创建ActionResult打开两个url';s_C#_Asp.net Mvc_Visual Studio - Fatal编程技术网

C# 如何在ModelState.IsValid中创建ActionResult打开两个url';s

C# 如何在ModelState.IsValid中创建ActionResult打开两个url';s,c#,asp.net-mvc,visual-studio,C#,Asp.net Mvc,Visual Studio,我需要使我的应用程序一起打开,并返回一个带有另一个url的新窗口 下面是ASP.NET MVC代码,以及我的计划。 打开外部url,然后重定向到默认系统索引。 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Details([Bind(Include = "AvisoId,Cliente,Data,Email,Telefone,Observacao,Enviado,Usuario")] Aviso avi

我需要使我的应用程序一起打开,并返回一个带有另一个url的新窗口

下面是ASP.NET MVC代码,以及我的计划。 打开外部url,然后重定向到默认系统索引。

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Details([Bind(Include = "AvisoId,Cliente,Data,Email,Telefone,Observacao,Enviado,Usuario")] Aviso aviso)
    {
        if (ModelState.IsValid)
        {
            db.Entry(aviso).State = EntityState.Modified;
            db.SaveChanges();

            Redirect("https://other-site-in-new-window.com");

            return RedirectToAction("Index");
        }
        return View(aviso);
    }

ASP.Net代码在web服务器上运行,因此无法在客户端浏览器上打开其他选项卡。因为它不受客户端浏览器的控制——web服务器的任务是根据客户端的请求向其发送请求


如果您想执行类似操作,您需要在网页上有一个带有target=“\u blank”的链接,用于新选项卡,并在单击按钮后使用javascript将当前页面重定向到您想去的任何地方。

ASP.Net代码在web服务器上运行,因此无法在客户端浏览器上打开另一个选项卡。因为它不受客户端浏览器的控制——web服务器的任务是根据客户端的请求向其发送请求


如果你想做这样的事情,你需要在网页上有一个带有target=“\u blank”的链接来创建一个新选项卡,并使用javascript在点击按钮后将当前页面重定向到你想去的任何地方。

在浏览器上打开一个新页面是客户端的责任,而不是服务器的责任(你的asp.net控制器在哪里)跑步

但是,您可以做的是返回要在中打开的另一个页面的url

  • 临时数据
  • 视袋
  • 视图数据
  • 饼干
或者根据您的申请,您认为合适的任何其他形式。然后在客户端,检索要打开的url的值,并在新选项卡中打开它

使用您的代码和临时数据

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Details([Bind(Include = "AvisoId,Cliente,Data,Email,Telefone,Observacao,Enviado,Usuario")] Aviso aviso)
{
    if (ModelState.IsValid)
    {
        db.Entry(aviso).State = EntityState.Modified;
        db.SaveChanges();

        TempData["ExternalUrl"] = "https://other-site-in-new-window.com";

        return RedirectToAction("Index");
    }
    return View(aviso);
}
然后在javascript的cshtml页面中

... 
let externalUrl = '@TempData["ExternalUrl"]';
if(externalUrl) {
   //Do something here
}
...

在浏览器上打开新页面是客户端的责任,而不是服务器(asp.net控制器的运行位置)的责任

但是,您可以做的是返回要在中打开的另一个页面的url

  • 临时数据
  • 视袋
  • 视图数据
  • 饼干
或者根据您的申请,您认为合适的任何其他形式。然后在客户端,检索要打开的url的值,并在新选项卡中打开它

使用您的代码和临时数据

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Details([Bind(Include = "AvisoId,Cliente,Data,Email,Telefone,Observacao,Enviado,Usuario")] Aviso aviso)
{
    if (ModelState.IsValid)
    {
        db.Entry(aviso).State = EntityState.Modified;
        db.SaveChanges();

        TempData["ExternalUrl"] = "https://other-site-in-new-window.com";

        return RedirectToAction("Index");
    }
    return View(aviso);
}
然后在javascript的cshtml页面中

... 
let externalUrl = '@TempData["ExternalUrl"]';
if(externalUrl) {
   //Do something here
}
...

很抱歉问题是什么?朋友,我想打开一个外部页面以及系统的默认索引页面,您必须从客户端执行此操作。看向窗外。打开方法朋友们犯了一个错误,在这里检查,我问了一个初学者的问题,匆忙中我问了一个毫无价值的问题,对不起,解决方法很简单。。。。。。。很抱歉问题是什么?朋友,我想打开一个外部页面以及系统的默认索引页面,您必须从客户端执行此操作。看向窗外。打开方法朋友们犯了一个错误,在这里检查,我问了一个初学者的问题,匆忙中我问了一个毫无价值的问题,对不起,解决方法很简单。。。。。。。朋友们犯了一个错误,检查这里,我问了一个初学者的问题,匆忙中我问了一个毫无价值的问题,对不起,解决方法很简单。。。。。。。朋友们犯了一个错误,检查这里,我问了一个初学者的问题,匆忙中我问了一个毫无价值的问题,对不起,解决方法很简单。。。。。。。