【发布时间】:2014-07-26 19:17:42
【问题描述】:
我需要定义架构吗?如果是这样,那应该是什么样子?我对此的搜索似乎只找到了 js 解决方案,我正在寻找在编辑器模板中定义它的语法。
共享/编辑器模板:
@(
Html.Kendo().DropDownList()
.Name("SearchFunction")
.DataTextField("SearchFunctionDesc")
.DataValueField("SearchFunctionCode")
.DataSource(source =>
{
source.Read(read => {
read.Action("GetSearchFunctions", "User");
});
})
.OptionLabel("--Select a Search Function--")
.AutoBind(false)
)
在控制器中:
public JsonResult GetSearchFunctions([DataSourceRequest] DataSourceRequest request)
{
var searchFuncs = AdminService.GetSearchFunctions();
DataSourceResult result = searchFuncs.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
然后是我的 Dapper 数据库查询:
var result = new List<SearchFunction>();
using (var conn = new OracleConnection(DatabaseConnectionString))
{
conn.Open();
string query = "select FUNCTION_ID, SEARCH_FUNCTION_CD, " +
"SEARCH_FUNCTION_DESC, IS_ACTIVE " +
"from TBL_SEARCH_FUNCTIONS ";
result = conn.Query(query)
.Select(s => new SearchFunction
{
FunctionId = (int)s.FUNCTION_ID,
SearchFunctionCode = s.SEARCH_FUNCTION_CD,
SearchFunctionDesc = s.SEARCH_FUNCTION_DESC,
Active = s.IS_ACTIVE
}).ToList<SearchFunction>();
conn.Close();
return result;
}
【问题讨论】:
-
DataSourceRequest对于下拉菜单不是必需的。删除该部分并返回searchFuncs。也知道你的场景是什么,但你可能想设置AutoBind(true) -
这样做有什么意义?将所有数据发送给客户端?合乎逻辑吗?
标签: asp.net asp.net-mvc c#-4.0 kendo-grid kendo-asp.net-mvc