【问题标题】:MVC, how to post data to controller and redirect to aspx pageMVC,如何将数据发布到控制器并重定向到 aspx 页面
【发布时间】:2017-08-21 14:16:29
【问题描述】:

我有一个 MVC 视图,用户可以在其中设置标志并将数据发布到控制器(发布因为我想隐藏查询字符串)

控制器完成工作后,我想重定向到网站主页,这是一个 aspx 页面(我的网站是混合 aspx 和 MVC)

有没有办法做到这一点?

这是我的看法

@model MessaggiVM
<form role="form" class="form-inline" method="post" action="Messaggi/VaiAllaHome">
    <button id="btnHome">Vai alla pagina iniziale</button>

    <div class="form-group">
        <label for="nascondi">hiding</label>
        <input id="nascondi" type="checkbox" name="nascondi" value="true" />
    </div>
    <input type="hidden" name="elencoPost" value="@Model.Posts" />
    @*@Html.ActionLink("Messaggi", "VaiAllaHome", new { posts = Model.Posts} )*@
</form>

这是控制器

[HttpPost]
public RedirectResult VaiAllaHome(bool? nascondi = false, IEnumerable<Messaggio> elencoPost = null)
{
    // do something

    return Redirect(Url.Content("~/"));
}

当我运行此代码时,控制器操作执行没有错误,但重定向未完成,浏览器仍保留在视图上

其他问题是操作中的 elencoPost 参数为空,但我正在调查它

编辑

老实说,我正在考虑发布有关输入更改和切换按钮的数据以获取简单的链接

编辑 2:

找到原因:在 default.aspx 我有一个自动重定向到消息页面:(

【问题讨论】:

  • 这些链接应该对您有所帮助:帖子:codeproject.com/Articles/639709/… 和重定向到 aspx:stackoverflow.com/a/12977284/3365113
  • 试试return Redirect("/SomePage");
  • 我必须使用“~/”作为网站的根目录,我在反向代理和相对链接下无法工作
  • 如果你尝试return Redirect("~/")会发生什么?
  • 同样的,视图只是刷新了

标签: c# asp.net asp.net-mvc


【解决方案1】:

试试

return Redirect("~/home.aspx");

return Redirect(Url.Content("~/home.aspx")

【讨论】:

  • 找到了原因:在 default.aspx 中我有一个自动重定向到消息页面 :(。将此标记为已接受,因为它更相关
【解决方案2】:

您应该可以使用Redirect 与相对网址:

    [HttpPost]
    public RedirectResult VaiAllaHome(bool? nascondi = false, IEnumerable<Messaggio> elencoPost = null)
    {
        // do something

        return Redirect("/home.aspx");
    }

【讨论】:

    【解决方案3】:

    尝试在表单标签上使用@Url.Content

    <form action="@Url.Content("~/Messaggi/VaiAllaHome/")">
    

    然后在你的控制器中

    [HttpPost]
    public RedirectResult VaiAllaHome(bool? nascondi = false, IEnumerable<Messaggio> elencoPost = null)
    {
        // do something
    
        return View(Url.Content("~/"));
        //return RedirectToAction("Action", "Controller", new { routeParameter = value } /*e.g. "id = 1"*/);
    }
    

    【讨论】:

    • OP 说他正在尝试重定向到 ASP.NET Web Forms .aspx 页面
    猜你喜欢
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 2013-09-19
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多