I'am using Javascript in ASP.NET MVC. I need to make class name dynamically which includes whitespace, but it doesn't work.
The result becomes
<script class="carousel-item" active="">
rather than
<script class="carousel-item active">
Below is the code block.
@for (var i = 0; i < Model.Banners.Count; i++)
{
var className = "carousel-item";
if (i == 0)
{
className += " active";
}
var srcName = "";
if (Model.Banners[i].Image != null)
{
srcName = "data:image;base64," + @System.Convert.ToBase64String(Model.Banners[i].Image);
}
<div class=@className>
<img class="d-block img-fluid" src=@srcName/>
</div>
}
You're missing quotes around @className
in <div class=@className>
, try <div class="@className">
instead.
You should also add quotes around @srcName
too in the img
tag
<div class="@className">
<img class="d-block img-fluid" src="@srcName"/>
</div>
Explanation
Without the quotes <div class="@className">
will render
<div class=carousel-item active>
Which gets interpreted as
<div class="carousel-item" active="">
Actually you are missing the quotes("") for html attribute, the correct html syntax is attr1="value1, value2", and you are making it as attr1=value1 value2.
Try:
<div class="@className">
<img class="d-block img-fluid" src="@srcName"/>
</div>
Or:
var className = "\"carousel-item";
if (i == 0)
{
className += " active";
}
className += "\"";
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.