我正在将我的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
操作控制器,也不会提交任何发布请求。
2)使用@Html.ActionLink
以下代码在Core应用程序中运行良好
<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>
但是,迁移到框架应用程序时链接无效(甚至无法点击)。
我知道我需要使用@Html.ActionLink
组件,但我不知道如何模板化上述代码,以便它包含所有标签和类。
答案 0 :(得分:1)
<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>
另外,Core和Framework完全不同。您的asp-*
语法都不适用于Framework。