【发布时间】:2014-04-22 20:40:58
【问题描述】:
当 razor 模板有一个用括号括起来的变量时(例如,下面代码中的“(@Model.B)”),如果该变量前面有一个“
[Test]
public void TestWeirdLangleBracketError()
{
var template = "(@Model.B)";
var model = new Model { B = Guid.NewGuid().ToString() };
var templateService =
new TemplateService(new TemplateServiceConfiguration { EncodedStringFactory = new RawStringFactory() });
//It is replaced here
//Result of Try1: "(f9e0f220-0df8-4942-9d84-e403c622af96)"
templateService.Compile(template, typeof(Model), "Try1");
Assert.True(templateService.Run("Try1", model, null).Contains(model.B));
//But not here
//Result of Try2: " < (@Model.B)"
templateService.Compile(" < " + template, typeof(Model), "Try2");
Assert.False(templateService.Run("Try2", model, null).Contains(model.B));
}
public class Model
{
public string B { get; set; }
}
【问题讨论】:
-
有错误信息吗?
-
代码编译和执行没有错误,尽管有意想不到的结果。
标签: c# razor razorengine