我可以将对 SEO 友好的 URL 段用于 PageController 上的操作吗?

Can I give SEO-friendly URL Segment's to action on a PageController?

是否可以为 PageController<T> 上的操作定义 URL 段?

以下面的控制器为例,

public class MyPageController : PageController<MyPageData>
{
    public ActionResult Index(MyPageData currentPage)
    {
        return View(currentPage);
    }

    [HttpPost]
    public ActionResult SubmitForm(MyPageData currentPage, FormModel model)
    {
        // ...
        return Redirect("/");
    }
}

新,假设我们在 URL /my-page 处创建了一个 MyPageData 的实例,如果我们渲染一个表单,其动作是 SubmitForm 动作,我们会得到一个 URL 这样的 <form action="/my-page/SubmitForm">

@using(Html.BeginForm("SubmitForm"))
{
    ...
}

我的问题是,是否有任何方法可以定义或控制非索引操作的 URL 段的呈现方式,以便表单呈现如此 <form action="/my-page/submit-form">

您应该能够使用标准的 ASP.NET 操作名称属性,例如

public class MyPageController : PageController<MyPageData>
{
    [HttpPost]
    [ActionName("submit-form")]
    public ActionResult SubmitForm(MyPageData currentPage, FormModel model)
    {
        // ...
        return Redirect("/");
    }
}