0

从我的表面控制器中,我希望将当前查询字符串附加到重定向操作。我似乎找不到任何合适的方法来做到这一点。

发送表单的页面包含一个选项卡,通过将查询字符串附加到 url 来显示该选项卡。表单是从此选项卡提交的,我希望感谢消息显示在同一选项卡上。

查询字符串是#inquery

从我的表面控制器:

[HttpPost]
public ActionResult HandleFormSubmit(InquiryFormModel model)
{
    if (!ModelState.IsValid)
    {
        return CurrentUmbracoPage();
    }

    // Mail date goes here...

    TempData["success"] = true;

    return RedirectToCurrentUmbracoPage();
}

正如您正确猜测的那样,我希望将 #inquery 附加到 RedirectToCurrentUmbracoPage() 方法返回的 URL 中。

谢谢!

4

1 回答 1

0

在返回当前页面的地方,添加一个包含查询字符串的 viewbag 对象。将此字段存储在 HTML 中的隐藏输入中,并让您的客户端 javascript 对其进行测试,并将其附加到 URL(如果存在)。

if (!ModelState.IsValid)
{
    ViewBag.URLString = "stringhere"
    return CurrentUmbracoPage();
}

然后在你的 HTML 中。

<input id="URLString" type="hidden" />

在你的 javascript 中(如果你使用 jQuery)

$(document).ready(function(){
    window.location.href += $("#URLString").val();
});

我还没有完全限定这段代码,所以它不会按原样工作,但它还有更多可以给你一个想法。

于 2013-09-15T17:53:27.550 回答