ASP.NET 框架形式 post 请求和操作 link 标记

ASP.NET Framework form post request and action link tag

我正在将我的 ASP.NET 核心应用程序迁移到 ASP.NET 框架 471,我面临几个问题:

1) .cshtml 表单模板

ASP.NET 核心表单页面看起来像(工作正常)并在控制器中调用 Login 操作

<form asp-controller="Home" asp-action="Login" method="post">
    <input type="text" name="Username" placeholder="Enter your username">
    <input type="password" name="Password" placeholder="Enter your password">
    <button type="submit">Log In</button>
</form>

但是,在单击提交按钮迁移到 .NET Framework 后,它不会调用 Login 操作控制器,也不会提交 post 请求。

2) 使用@Html.ActionLink

以下代码在核心应用程序中运行良好

<ul class="br-sideleft-menu">
    <li class="br-menu-item">
        <a class="br-menu-link" asp-area="" asp-controller="Home" asp-action="Dashboard">
            <i class="menu-item-icon icon ion-ios-home-outline tx-20"></i>
            <span class="menu-item-label">Dashboard</span>
        </a>
    </li>
</ul>

但是,在迁移到框架应用程序时,link 无法正常工作(甚至无法点击)。

我知道我需要使用 @Html.ActionLink 组件,但我不确定如何模板化上述代码,以便它包含所有标签和 类.

<form asp-controller="Home" asp-action="Login" method="post">
    <input type="text" name="Username" placeholder="Enter your username">
    <input type="password" name="Password" placeholder="Enter your password">
    <button type="submit">Log In</button>
</form>

应该是

@using(Html.BeginForm("Login", "Home", FormMethod.Post))
{
    <input type="text" name="Username" placeholder="Enter your username">
    <input type="password" name="Password" placeholder="Enter your password">
    <button type="submit">Log In</button>
}

<a class="br-menu-link" asp-area="" asp-controller="Home" asp-action="Dashboard">
     <i class="menu-item-icon icon ion-ios-home-outline tx-20"></i>
     <span class="menu-item-label">Dashboard</span>
</a>

应该是

<a class="br-menu-link" href="@Url.Action("Dashboard", "Home")">
     <i class="menu-item-icon icon ion-ios-home-outline tx-20"></i>
     <span class="menu-item-label">Dashboard</span>
</a> 

顺便说一句,核心和框架是完全不同的。 None 的 asp-* 语法将在 Framework 中运行。