如何将引用UI中其他元素的参数(例如文本框值,单选按钮等)传递给被调用以获取自动完成数据的控制器?
例如。从文档中的示例来看,当我调用Home控制器GetProducts操作时,如何将这些参数与调用一起发送?
或者甚至更好,发布一个json对象,其中包含引用ui中其他2-3个小部件的数据的值
https://docs.telerik.com/aspnet-mvc/helpers/autocomplete/overview#ajax-binding
@(Html.Kendo().AutoComplete()
.Name("productAutoComplete") //The name of the AutoComplete is mandatory. It specifies the "id" attribute of the widget.
.DataTextField("ProductName") //Specify which property of the Product to be used by the AutoComplete.
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetProducts", "Home"); //Set the Action and Controller names.
})
.ServerFiltering(true); //If true, the DataSource will not filter the data on the client.
})
)
答案 0 :(得分:0)
您可以使用对象路由值传递其他数据 E.g。
.Read(read => read.Action("Products_Read", "Home", new { name = "test", id = 2 }))
OR 通过数据方法,
指定一个JavaScript函数,它将返回其他参数。 E.g。
.Read(read => read.Action("Products_Read", "Home").Data("additionalInfo"))
function additionalInfo() {
return {
name: "test",
id: 2
}
}
或通过模板代表
//By Template Delegate
Read(read => read.Action("Products_Read", "Home").Data(@<text>
function() {
//pass parameters to the Read method
return {
name: "test",
id: $("#search").val()
}
}
</text>))
在所有情况下,您都应该为Action添加其他参数。 E.g。
public ActionResult Products_Read([DataSourceRequest] DataSourceRequest request, string name, int id) {...}