ASP.NET的剃刀:渲染ViewBag项目和替换字符

问题描述:

我有问题,我想要做的是:ASP.NET的剃刀:渲染ViewBag项目和替换字符

我从我的控制器ViewBag.Email变量获取用户的电子邮件地址。

我想要的标签,这将有ID名为“令牌” +用户电子邮件代替字符“@”到“_”

(即电子邮件是[email protected],我想有标签为id:'tokenabc_abc.com')

<label id="@Html.Raw("token" + ViewBag.Email.replace("@", "_"))"> 
    @ViewBag.Tokens 
</label> 

我试过用这段代码,但是我有问题。

错误:

An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'   
occurred in System.Core.dll but was not handled in user code 

Additional information: 'string' does not contain a definition for 'replace' 
+0

什么问题?如果您在控制器中生成'格式化'文本并将其传递到视图将会好得多。 –

+0

你有什么问题?当你这样做时,你会得到什么标识? –

+0

我用错误代码编辑了我的问题。顺便说一下,我已经成功地遵循斯蒂芬的建议,在控制器中生成字段,现在可以。 – luka032

的问题是在写方法资本R替换 - >替换。

<label id="@Html.Raw("token" + ViewBag.Email.Replace("@", "_"))"> 
    @ViewBag.Tokens 
</label> 

,你可以写“替换”,你会得到工作的变体。这是代码的工作

<label id="@Html.Raw("token" + ViewBag.Email.Replace("@", "_"))"> 
@ViewBag.Tokens