我正在使用razor页面制作asp.net核心程序,我想将数据从index.cshtml页面发送到indes.cshtml.cs,我在表单中使用asp-for方法将值传递给变量在 .cs 文件中,但该值永远不会被传递。这就是代码的样子。
这是前端的形状
<form method="post" autocomplete="on">
<label class="offscreen" for="searchText">Enter a game</label>
<input type="text" id="searchText" class="searchText" name="searchText" list="games" asp-for="gameViewModel.Name"/>
</form>
这是它后面的 .ccs 文件(它比这个大一点,但这是我将其传递给的变量)
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
[BindProperty]
public GameViewModel gameViewModel { get; set; }
}
这是视图模型
public class GameViewModel
{
public string Name { get; set; }
}
我在程序的其他页面上做了同样的事情,名称值很好地传递给了 gameViewModel,只是在索引页面中这不起作用。 我尝试过改变一些小事情,但没有任何改变。
您已显式设置输入标签助手的
name
和 id
属性,这将覆盖标签助手的输出。删除 name
和 id
属性:
<input type="text" class="searchText" list="games" asp-for="gameViewModel.Name"/>