如何使用Razor视图
问题描述:
<select id="TypeOfUser" name="typeOfUser" class="active text-normal">
<option value="2" onclick="location.href='@(Url.Action("Index", "User", new { typeOfUser = 2}))'">CMS Users</option>
<option value="3" onclick="location.href='@(Url.Action("Index", "User", new { typeOfUser = 3}))'">Site Users</option>
</select>
在下拉菜单项目的选择我想打电话给我的操作方法与选择的值 -如何使用Razor视图
public async Task<IActionResult> Index([FromQuery] int typeOfUser = 2)
{
SearchUsersResponse searchUserResponse = await new SearchUsersHandler(_db).Handle(new SearchUsersCommandAsync
{
Type = typeOfUser
});
return View("Index", searchUserResponse);
}
目前在下拉选择改变我不能呼吁下拉菜单选择操作方法调用操作方法。
答
onclick
将无法使用该选项。你可以做的是执行你的javascript代码,以重定向SELECT元素的onchange
事件。
<select id="TypeOfUser" name="typeOfUser" class="active text-normal"
onchange="doIt(this,'@Url.Action("Index", "User")')">
<option value="2" >CMS Users</option>
<option value="3">Site Users</option>
</select>
假设你有一个JavaScript方法,它有2个参数。第一个参数是对发生onchange事件的SELECT元素的引用。因此,您可以访问value
属性以获取选定的选项值。
function doIt(item,baseUrl) {
window.location.href = baseUrl + '?typeOfUser=' + item.value;
}
您已经使用JavaScript(你觉得呢'onclick'是) –
AFAIK,选择元素将无法调用任何操作方法本身没有事件触发,你需要设置由JS onchange事件/ jQuery并提交更改后的值以将其作为控制器端的参数值传递。 –