Вам не нужны @{
и }
вокруг кода на стороне сервера, который преобразует значение ViewData в List<string>
. И как примечание стороны, вам не нужно было бы приводить, если вы использовали модели представления вместо слабо типизированной структуры ViewData. И, конечно, если бы вы использовали строгую типизацию, вам не нужно было бы оборачивать ее в @{ ... }
, и вы не получили бы никакой ошибки. Вывод: никогда не используйте ViewBag/ViewData
в приложении ASP.NET MVC. Всегда используйте модели представлений и строго типизированные виды.
Вот правильный код ( правильный курсив , так как он работает, но не рекомендуется согласно моей предыдущей заметке):
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
// Retrieve the server generated config errors from the ViewData
List<string> errors = ViewData["ConfigErrors"] as List<string>;
if( errors != null && errors.Count > 0 )
{
// We have some errors to display
<div>
<h3>The following errors need attention before the configuration can be saved</h3>
<ul>
@foreach( var error in errors)
{
// Display the errors that require attention
<li>
@error
</li>
}
</ul>
</div>
}
<fieldset>
...
</fieldset>
<div>
<p>
<input type="submit" value="Save" />
</p>
</div>
}
<div>
@Html.ActionLink("Discard Changes", "Index")
</div>