我正在寻找一种方法来使用多个值填充Magic Suggest控件。我正在使用ASP.NET MVC,并希望根据模型中的属性设置这些值。
第1部分: Magic建议支持多个值? SOF上的related question地址添加单个值但不是多个。这可能吗?
第2部分:理想情况下,我想以某种方式将控件绑定到MVC模型。如果这不可能,我至少想动态设置预先选择的值。我通过剃刀语法访问模型。与Magic Suggest类似的东西可能允许您设置数据。
$(function () {
$('#magicsuggest').magicSuggest({
data: '/controller/GetValuesJson?mealId=@Model.Id',
valueField: 'Id',
displayField: 'Name',
/* The property below allows pre-selection */
/* How can I use Razor and set from my MVC model?* /
value: */ Some Code Here */
});
});
编辑:第2部分:尝试通过任何变量设置value属性似乎都失败了。我尝试过各种字符串,引号等无济于事。
var returnedIds = [1,2]; // Or some variable population
$(function () {
$('#magicsuggest').magicSuggest({
data: '/controller/GetValuesJson?mealId=@Model.Id',
valueField: 'Id',
displayField: 'Name',
value: [returnedIds]
});
});
已解决:感谢@karlipoppins发布的帖子以及一些修修补补。
$(function ()
{
$.ajax({
url: '@Url.Action("GetSomeValuesJson")',
data: { Id: 1},
type: 'post',
success: function (returnedVal)
{
var ms = $('#magicsuggest').magicSuggest(
{
data: '/Meal/GetSomeValuesJson?&Id=@Model.Id',
valueField: 'Id',
displayField: 'Name',
});
ms.setValue(returnedVal);
}
});
});
答案 0 :(得分:3)
据我所知,您正在尝试在加载组件时设置多个值。在您的代码中,您使用Id
作为值字段,使用Name
作为displayField。
这意味着magicsuggest期望data
采用
[{"Id": 1, "Name": "hello"}, {"Id": 2, "Name": "world"}, {"Id": 3, "Name": "no"}]
现在要设置多个值,您可以
1)在js中定义组件时这样做:
$('#magicsuggest').magicSuggest({
data: '/controller/GetValuesJson?mealId=@Model.Id',
valueField: 'Id',
displayField: 'Name',
value: [1, 2] // select 'hello', 'world'
});
2)或者您也可以直接在包含DOM的字段中定义它:
<div id="magicsuggest" value="[1,2]"></div>
然后创建这样的组件:
$('#magicsuggest').magicSuggest({
data: '/controller/GetValuesJson?mealId=@Model.Id',
valueField: 'Id',
displayField: 'Name'
});
请参阅此处的两个示例:http://jsfiddle.net/Kpz6y/
干杯