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 中运行。
我正在将我的 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 中运行。