我只是在视图中使用razor语法的asp.net mvc新手,我想知道如何在jQuery例程中使用模型对象来设置img src?
例如:
setSourceImage()
{
@foreach(var myPaths in Model)
{
@: jQuery('#sampleImage').attr('src',myPaths.imgPath)
}
}
我知道语法错误,但从某种意义上说,这就是我想要实现的目标。
感谢。
答案 0 :(得分:0)
是的,语法错误。我建议您使用Json.Encode
方法安全地序列化您感兴趣的模型的属性:
<script type="text/javascript">
function setSourceImage() {
var imageSources = @Html.Raw(Json.Encode(Model.Select(x => x.imgPath)));
for (var i = 0; i < imageSources.length; i++) {
jQuery('#sampleImage').attr('src', imageSources[i])
}
}
</script>
可能会呈现为:
<script type="text/javascript">
function setSourceImage() {
var imageSources = ['/images/img1.jpg', '/images/img2.jpg'];
for (var i = 0; i < imageSources.length; i++) {
jQuery('#sampleImage').attr('src', imageSources[i])
}
}
</script>
显然,为了实现这一点,模型的imgPath
属性应该包含服务器上图像的绝对或相对URL。它不应包含图像的物理位置,如c:\inetpub\wwwroot\myapp\images\img1.jpg
。如果是这种情况,则必须在渲染视图之前在服务器上转换此属性。