Angularjs 为什么我的<;a>;taghelper路线在其路线被表单邮局使用后是否会失效?
这是一个ASP.Net核心MVC项目。 在我的布局文件中,我有以下菜单链接:Angularjs 为什么我的<;a>;taghelper路线在其路线被表单邮局使用后是否会失效?,angularjs,asp.net-core-mvc,Angularjs,Asp.net Core Mvc,这是一个ASP.Net核心MVC项目。 在我的布局文件中,我有以下菜单链接: <li><a asp-controller="Employees" asp-action="Index">Employees</a></li> 当我单击链接时,会点击操作,并使用我的员工列表视图呈现视图。 Employee List视图绑定到Angular控制器,该控制器调用相应的Employee Web API GET,该视图显示未筛选的my Employee Lis
<li><a asp-controller="Employees" asp-action="Index">Employees</a></li>
当我单击链接时,会点击操作,并使用我的员工列表视图呈现视图。
Employee List视图绑定到Angular控制器,该控制器调用相应的Employee Web API GET,该视图显示未筛选的my Employee List。
太好了
现在,我们需要从快速搜索面板进行员工快速搜索。
因此,我修改了我的MVC员工控制器,如下所示:
public IActionResult Index()
{
return View();
}
public IActionResult Index(EmployeeListPageViewModel empListPageVM)
{
return View(empListPageVM);
}
它采用了这种模式:
public class EmployeeListPageViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
我的快速搜索表单在布局文件中如下所示:
<form asp-controller="Employees" asp-action="Index">
<th>Employee Search:</th>
<td><input id="firstName" name="firstName" type="text" placeholder="FirstName" /></td>
<td><input id="lastName" name="lastName" type="text" placeholder="LastName" /></td>
<td>
<button class="btn btn-xs btn-primary glyphicon glyphicon-search">
</button>
</td>
</form>
绑定到角度控制器:
ng-controller="employeesController
致电getEmployees:
ng-init="getEmployees('@Model.FirstName', '@Model.LastName')
角度控制器确定所有内容是否为空或是否需要过滤:
/***** List Employees *****/
$scope.getEmployees = function (pfirstName, pLastName) {
var config = {
params: {
firstName: pfirstName,
lastName: pLastName
}
}
$http.get(employeeUrl, config)
.then(function (response) {
// Test front end exception message;
// throw "test exception";
$scope.data.employees = response.data;
})
.catch(function (error) {
$scope.data.employeeListError = error;
});
}
希望所有这些都有意义。只是在这里打基础。
现在我的问题是:
每件事似乎都是单独进行的
但是,当我进入fresh并单击Employees菜单链接时,我会得到完整的列表。
当我在快速搜索中填写FirstName和/或LastName时,它就起作用了。
但现在员工菜单链接已经失效。它不会开火。它不会影响员工索引控制器操作
是什么让表单终止了菜单链接
更新1:考虑到这一点后,我相信锚定标记帮助器正在查看控制器和索引,并说:“我已经在那里了。”因此它不会执行控制器操作。即使它已经存在,我如何强迫它去呢
更新2:我尝试更改此链接:
<li><a href="/Employees">Employees</a></li>
该链接起作用,但在表单发布后仍会被删除。显然,无论您如何指向该链接、taghelper、ng href、straight链接,无论什么,如果您已经在那里,该链接都不会被删除 我必须用以下内容替换菜单中的锚定链接:
<li>
<form asp-controller="Employees" asp-action="Index">
<button type="submit" class="navbarLinks">
Employees
</button>
</form>
员工
<li>
<form asp-controller="Employees" asp-action="Index">
<button type="submit" class="navbarLinks">
Employees
</button>
</form>