在我的MVC控制器中,我创建了一个“对象”,我将其简化为“学生”。我正在使用ViewBag将其传递给我的视图。
在我的控制器中,我有:
ViewBag.Student = new {
Id = "52",
Value = JsonConvert.SerializeObject(new
{
StudentName = oneStudent.Name,
Age = oneStudent.Age,
FavoriteColor = oneStudent.Color,
Height = oneStudent.Height
}),
Text = oneStudent.Name + " --- " + oneStudent.Age,
};
我开始使用
调用ViewBag@{
var student = ViewBag.Student;
}
我希望使用span(或类似的东西)来显示数据。我的尝试是在html代码中使用了一些代码“@ Student.Value”,但这没有用。
非常感谢任何帮助。谢谢。
答案 0 :(得分:2)
您正在为Viewbag设置匿名对象。您无法在剃须刀视图中阅读该属性。
您应该做的是创建一个视图模型来表示您要发送的数据,创建该对象,初始化属性值并发送到视图。使用ViewBag在您的操作方法和视图之间传输数据也不是一个好主意。由于我们将使用视图模型,因此我们可以将视图强烈地键入视图模型并使用它来传输数据。
change
在你的GET行动中
$('.slider').each(function() {
var $el = $(this);
$el.slider({
range: "max",
min: $el.data('min'),
max: $el.data('max'),
value: $el.data('value'),
step: $el.data('step'),
stop: function(event, ui) {
var percent = (100 / ($(this).data('max') - $(this).data('min'))) * $(this).slider('value');
$('.slider').not(this).each(function() {
$(this).slider('value', (($(this).data('max') - $(this).data('min')) / 100) * percent);
});
},
change: function(event, ui) {
$($el.data('target')).html('£' + ui.value);
}
});
});
并在您的视图中强烈输入我们的视图模型
public class StudentDetailVm
{
public int Id { set; get; }
public StudentVm Value { set; get; }
}
public class StudentVm
{
public string StudentName { set; get; }
public int Age { set; get; }
public int Height {set;get;}
}