2
У меня возникают проблемы с переменной областью для myClient
в моем коде Razor. Я уверен, что решение прост. В основном я ссылаюсь на него в отдельном блоке @{}
, который, возможно, вызывает проблему, но кажется, что если я этого не сделаю, я получаю код if..{}
в HTML.Что такое область переменных в Razor MVC 3
@{
int i = 0;
foreach (var item in Model.Clients)
{
Int32 myId = Convert.ToInt32(item.DBID);
var myClient = db.Client.Where(c => c.Id == myId).First();
<td>
<table class="inner">
<tr><th>
@string.Format(
"{0} {1} {2}",
myClient.Title,
myClient.Initials,
myClient.LastName)
@{
if (myClient.Type!="Primary")
{
@Html.ActionLink(
"Delete",
"Delete",
"ClientBackground",
new { id=item.ID }, null)
}
}
</th></tr>
}
<table>
Мой код не может ссылаться myClient.Type
. Если я удалю окружающие @{}
, тогда я получу код C# в HTML.
Что-то простое знаю, но я не вижу его.
Любая помощь чрезвычайно ценится.
EDIT: стол закрыт.
, пожалуйста, разместите весь блок кода. где '
Привет, я не поместил его изначально, так как не думал, что мне это нужно для решения. В любом случае, теперь я вижу EDIT. Еще раз спасибо. – SamJolly
ответ
Попробуйте это:
Я сделал много предположений о форматировании. Важно, я поставил ваше назначение int в собственный блок. Я положил открытие и закрытие
<tr>
и<td>
, чтобы установить их и поставить их за пределы опционного@if blocks
. Но эта версия будет компилироваться.источник
2013-04-11 12:58:17
Спасибо, это работает. Из интереса какая разница между @ {} и @. Мое подозрение состоит в том, что первые пакеты содержат несколько строк кода. Я предполагаю, что можно получить доступ к переменной из пакета @ {}. Я думаю, что обнаружил, что моя проблема связана с чем-то другим, кроме переменной. – SamJolly
@SamJolly у вас есть правильная идея. одиночные или многострочные. Я думаю, что ваша проблема заключалась в более вложенных скобках и табличных тегах друг над другом. Должна быть четкая иерархия гнездования. –
Странный синтаксис здесь:
Почему нет:
Добавлено:
Обновленное код недействителен HTML разметки, он должен выглядеть примерно так:
Стол не был закрыт, и вы открыли
<td>
tagисточник
2013-04-11 12:59:49 webdeveloper
спасибо за ваше предложение. Возможно, «неправильный» не «странный» синтаксис :). См. Мой вопрос ниже о @ {} против @. – SamJolly
Смежные вопросы