asp-items yazınca unexpected token number hatası alıyorum...
<script type="text/javascript">
document.querySelector('#add-item').addEventListener('click', function()
{
document.querySelector('#orderTable tbody').innerHTML += `
<tr>
<td>
<select asp-items="@Model.Products" asp-for="@Model.OrderDetail.ProductId" class="form-select">
@{
if (Model.Products.Count > 0)
{
<option>Lütfen ürün seçiniz</option>
@foreach (var item in Model.Products)
{
<option value="@item.Value">@item.Text</option>
}
}
else
{
<option>Hiçbir ürün yok</option>
}
}
</select>
</td>
<td>
<div class="m-0">
<input asp-for="@Model.OrderDetail.Quantity" class="form-control" value="" />
</div>
</td>
</tr>
`;
});
</script>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
https://prototurk.com/soru/7993-unexpected-number-hatasi
buradaki son yanıtımda yanıtı bulabilirsin.
Razor render edebilmek için gerçek html koduna bakmak istiyor. Bu asp-*
attribute'lerinin gerçek html elementlerine yazılmasını istiyor.
Ama senin kodunda bir string ifade var. Razor bunun bir html elementi olduğunu anlamadığından, yapılmasını beklediğin şekilde elementi düzenleyemiyor.
Büyük ihtimalle @Model.Products
kodunu gördüğünde ekrana tırnak karakteri ve sayı içeren ifadeler basıyor. Böylece string ifaden tamamlanamıyor.
Yani Razor'un düzenleyeceği elementleri string ile oluşturmamalısın. Doğrudan html kodu olarak yazmalısın.
Yukarıdaki link'te bir örnek bulabilirsin.