MVC.NET:在razor之后立即使用文本

时间:2016-05-12 11:22:57

标签: asp.net asp.net-mvc razor

在这个例子中(虽然这个问题可能在其他情况下发生)我想从Modal中取出“id”变量并在它之后立即(没有空格)添加“.jpg”

试试这个:

<img src="/Images/@Model.Id:@.jpg">

当然不起作用(HttpCompileException)。

试试这个:

<img src="/Images/@Model.Id<text>@.jpg</text>">

创建:

<img src="/Images/75<text>.jpg</text>">

所以这不好。

我知道我可以使用完整路径在Modal中创建一个额外的变量,或者在Controller中创建它并在ViewBag中传递它但我想知道如何在.cshtml文件中解决它以供将来参考。

3 个答案:

答案 0 :(得分:6)

简单,使用括号

<img src="/Images/@(Model.Id).jpg">

另一种选择是将.jpg打印为字符串

<img src="/Images/@Model.Id@(".jpg")">

或连接两者

<img src="/Images/@(Model.Id + ".jpg")">

答案 1 :(得分:2)

作为替代方案,您可以这样做:

<img src='@string.Format("/Images/" + Model.Id +".jpg")'>

答案 2 :(得分:1)

这对您有用:

<img src="/Images/@(Model.Id).jpg" />

以上代码会为您提供此结果(如果id值为10001):

<img src="/Images/10001.jpg" />

以下是您可以考虑实施的替代方案。我曾经像上面的代码那样做,但我现在这样做:

<img src="@(new Uri(Request.Url, Url.Content("~/Images/10001.jpg")))" />

这将导致:

<img src="http://localhost:80000/Images/10001.jpg")))" />

我希望这会有所帮助。