Ваша проблема здесь в том, что вы сохраняете ваши новые строки в той же строке , которая была у вас в начале. (Кстати, код, который вы показали нам, не может быть скомпилирован)
У вас есть строка features
, вы повторяете разделение в вашем foreach
, затем для каждого результата разделения вы заменяете features
по результату . Это означает, что на последней итерации вашего foreach
последним результатом разбиения станет ваш новый features
(в данном случае "", а не "part4", поскольку в конце у вас есть еще один ";").
Итак, теперь вы можете напрямую вызвать @RenderFieldValue()
в вашем foreach с str
в качестве параметра или изменить поведение @RenderFieldValue()
следующим образом:
@helper RenderFieldValue(string value)
{
@foreach (String s in value.Split(';'))
{
<div>@s</div>
}
}
Где value
- ваша строка features
.
РЕДАКТИРОВАТЬ
Вот код, показывающий, как работает scope :
class Program
{
static void Main(string[] args)
{
Scope scope = new Scope();
String works = scope.canBeAccessedOutside;
String wontWork = scope.cannotBeAccessedOutside; // Compile error.
String stillWontWork = scope.cannotBeAccessedOutsideThisMethod; // Compile error.
scope.MethodCanBeAccessedOutside();
scope.MethodCannotBeAccessedOutside(); // Compile error.
}
}
class Scope
{
// Since it is declared inside the class scope, you can use it anywhere in the class, and outside since it is public.
public String canBeAccessedOutside;
// Since it is declared inside the class scope, you can use it anywhere in the class, but not outside since it is private.
private String cannotBeAccessedOutside;
// Can be used inside and outside the class.
public void MethodCanBeAccessedOutside()
{
// Can only be used inside this method.
String cannotBeAccessedOutsideThisMethod;
MethodCannotBeAccessedOutside(); // Compile since this is in the same class.
}
// Can only be used inside this class.
private void MethodCannotBeAccessedOutside()
{
String doesntWork = cannotBeAccessedOutsideThisMethod; // Compile error.
String work = cannotBeAccessedOutside;
}
}
In Чтобы уточнить, l oop scope работает как scope метода или scope class , appart из publi c и частных ключевых слов, так как циклы могут создаваться только внутри метода. Вы можете использовать переменные, которые доступны за пределами вашей области видимости l oop (например, feature
в вашем примере) или создавать новые, которые доступны только внутри области видимости l oop. Но не изменяйте ту же переменную, которую вы используете для итерации!
Надеюсь, это поможет!