v2.5.2
Giriş yap

asp-items yazınca unexpected token number hatası alıyorum...

arlihakan
46 defa görüntülendi

<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>

Cevap yaz
Cevaplar (1)
ebykdrms
14 gün önce

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.