我是Razor页面的新手,我试图将表单发布到我的OnPostHandler方法。我在我的表单中有一个DevExpress选择框和一个输入类型隐藏字段,我跟踪隐藏字段中更改的选择框的选择。当我尝试提交这个表单时,我可以看到提交的BatchType的值为空。我如何提交BatchType到我的处理程序?如有任何帮助,不胜感激。
.cshtml:
@model SearchViewModel
<form asp-page-handler="TransactionsByAllSearch" method="post">
<div class="myBox">
<div class="inline-block">
<div style="font-size: 15px;">Query Type</div>
<div>
@(Html.DevExtreme().SelectBox()
.ID("querytypes")
.ValueExpr("QueryType")
.DisplayExpr("Description")
.DataSource(Model.QueryTypes)
.Width("300px")
.DeferRendering(false)
.DataSource(@Model.QueryTypes)
.OnSelectionChanged("queryTypeSelectionChanged")
)
</div>
<div>
<input type="hidden" name="BatchType" value=""/>
</div>
</div>
</div>
<div>
@(Html.DevExtreme().Button().ID("getData").Text("Get Data").UseSubmitBehavior(true).Type(ButtonType.Success).Width(200))
</div>
</form>
<script>
function queryTypeSelectionChanged(e){
var batchType = $("#querytypes").dxSelectBox('instance').option('value');
$('#BatchType').val(batchType);
}
</script>
.cshtml.cs:
[BindProperty]
public SearchParameter ParameterModel { get; set; }
public async Task<PageResult> OnPostTransactionsByAllSearch()
{
//do something with the ParameterModel
}
SearchParameter.cs:
public class SearchParameter
{
public string BatchType{get;set;}
}
我的cshtml是一个部分页面,隐藏的输入文件没有分配值。我给出了一个"id"。属性到我的隐藏输入,现在我看到值被张贴。