Abbiamo avuto una vista (.cshtml) che ha reso XML per un feed RSS utilizzando ASP.NET MVC 3, che ha funzionato correttamente. Ora che abbiamo aggiornato a ASP.NET MVC 4 con Razor 2, stiamo generando errori di compilazione, simili al seguente.ASP.NET MVC 4 e Razor 2: il motore di visualizzazione non supporta più xml?
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Encountered end tag "item" with no matching start tag. Are your start/end tags properly balanced?
I tag sono correttamente bilanciati.
Qualcuno ha qualche idea?
UPDATE: ho isolato giù per la la collegamento elemento all'interno del voce elemento all'interno del @foreach (...) {...} blocco.
@foreach (var item in Model.Items)
{
<item>
<title>@item.Title</title>
<link>@item.Link</link>
<description>@item.Description</description>
<guid>@item.Guid</guid>
@if (item.PublishedDateUtc.HasValue)
{
<pubDate>@item.PublishedDateUtc.Value.ToString("ddd, dd MMM yyyy HH:mm:ss") GMT</pubDate>
}
</item>
}
ho riparato facendo utilizzando @ Html.Raw sottostante.
@foreach (var item in Model.Items)
{
<item>
<title>@item.Title</title>
@Html.Raw(string.Format("<link>{0}</link>", item.Link.ToHtmlEncoded()))
<description>@item.Description</description>
<guid>@item.Guid</guid>
@if (item.PublishedDateUtc.HasValue)
{
<pubDate>@item.PublishedDateUtc.Value.ToString("ddd, dd MMM yyyy HH:mm:ss") GMT</pubDate>
}
</item>
}
Qualcuno ha suggerimenti migliori? Ovviamente, potrei semplicemente usare una classe per dichiarare il modello e restituire l'XML direttamente dal controller, ma sono più interessato al motivo per cui questo comportamento si verifica e cosa posso fare per conformarmi meglio alla sintassi del Razor.
Potrebbe pubblicare il '' tag il messaggio di errore sta parlando? –
Aggiornamento della domanda con il tag e ** a ** soluzione alternativa. qualche idea? –