【问题标题】:Returning to a specific section of the View from the controller从控制器返回视图的特定部分
【发布时间】:2019-12-01 05:13:29
【问题描述】:

我正在尝试在 asp.net core 上做一个单页网站,我想尝试从控制器返回到网页的特定部分。

我将每个页面放入 cshtml 文件的各个部分,并为每个部分指定了 ID,以便在它们之间导航。

有没有办法从控制器转到我页面的特定部分。

<section id="contact">
    <form asp-action="PostEmail" asp-controller="Home">
        <div class="text-center">
            <div class="editor-label">
                @Html.LabelFor(model => model.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            </div>
            &nbsp;

            <div class="editor-label">
                @Html.LabelFor(model => model.Email)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Email)
                @Html.ValidationMessageFor(model => model.Email)
            </div>
            &nbsp;

            <div class="editor-label">
                @Html.LabelFor(model => model.Message)
            </div>
            <div class="editor-field">
                @Html.TextAreaFor(model => model.Message)
                @Html.ValidationMessageFor(model => model.Message)
            </div>
            &nbsp;
            <div>
                <button type="submit">Submit Message</button>
            </div>
            &nbsp;
            <div class="font-weight-bold text-danger">
                @ViewBag.message
            </div>
        </div>
    </form>

--- 控制器我想返回到部分 id 联系人

 public IActionResult PostEmail(Contact contact)
        {
return View();
        }

这一页上还有其他部分,所以想象一下页面上的其他部分。

【问题讨论】:

  • 为什么要这样做?你检查了部分视图吗?
  • 好吧,我首先将其作为单独的 cshtml 文件进行,然后我希望将其全部放在一个页面中,因此只需将内容复制到一个文件中即可。但是,您的建议听起来不错,所以我将实施,只是想当我想从控制器返回时问题仍然存在,因为此时它返回到页面顶部而不是我使用的页面部分发布到控制器。

标签: c# html asp.net-mvc asp.net-core razor


【解决方案1】:

重定向到示例中的视图;

    return new RedirectResult(Url.Action("Index") + "#contactSection");

在视图上,在 section 标签的正下方,放置一个 a 标签,如下所示

<a id="contactSection"></a>

当动作完成后,我想它会直接关注联系人部分。

希望您的问题正确。和平相处。

【讨论】:

  • 谢谢你,你是个传奇谢谢你回答我的第一个堆栈溢出问题。希望你有一个美好的一天兄弟。
  • 我需要将 ViewBag 更改为 TempData,因为它在使用 redirectToAction 返回时没有存储我的数据,所以这是我要说的唯一额外信息,仅适用于徘徊在这个答案上的其他人.例如 TempData["Message"] = "您的消息已发送";并且在视图中必须将其存储为变量: var message = TempData["Message"]
猜你喜欢
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
相关资源
最近更新 更多