在查看的字符串中使用剃刀

本文关键字:剃刀 字符串 | 更新日期: 2023-09-27 18:05:02

我试图把一些剃刀的东西在一个链接,但不能完全得到它正确注册。出问题的部分是@{ @Url...

<a class="social-icons-anchor" HREF="mailto:?subject=Check out this blah! - Blah&body=@{ @Url.AbsoluteAction(" Details", "Blah" , new { blahID = Model.Blah.BlahID }); }">

放置这种链接的正确方法是什么?

编辑:

结果似乎是这样的(注意空格):

https://blah-blahdev.azurewebsites.net/blah/ details?blahID=121 

下面是我正在使用的方法助手:

public static class UrlHelperExtension
{
    public static string AbsoluteAction(this UrlHelper url, string actionName, string controllerName, object routeValues = null)
    {
        string scheme = url.RequestContext.HttpContext.Request.Url.Scheme;
        return url.Action(actionName, controllerName, routeValues, scheme);
    }

在查看的字符串中使用剃刀

您尝试在Razor块内使用Razor代码。要解决这个问题,只需删除@{}:

<a class="social-icons-anchor" HREF="mailto:?subject=Check out this blah! - Blah&body= @Url.AbsoluteAction(" Details", "Blah" , new { blahID = Model.Blah.BlahID })">

基本上你必须去掉@{},但是。

创建一个帮助器:

@helper MailToThing(string email, string body, string title, string subject) {
    <a class="social-icons-anchor" href="mailto:@email?subject=@subject&body=@body">@title</a>
}

那么你将不得不得到blah,blah之类的东西:

@{
 var body = @Url.AbsoluteAction("Details", "Blah" , new { blahID = Model.Blah.BlahID });
 var email = "brahbrahbrah@bbhmm.com";
}

然后渲染:

@MailToThing(email, body, "", "Check out this blah! - Blah")