Asp.net mvc 3 mvc3从控制器创建链接

Asp.net mvc 3 mvc3从控制器创建链接,asp.net-mvc-3,hyperlink,Asp.net Mvc 3,Hyperlink,有没有办法从控制器创建链接并将其应用于ViewBag?我一直在努力,但没有任何效果 HyperLink hyperl = new HyperLink(); hyperl.NavigateUrl = "http://www.example.com/"; hyperl.Text = "Here is why.."; ViewBag.check ="You must register"+ hyperl; 您必须注

有没有办法从控制器创建链接并将其应用于ViewBag?我一直在努力,但没有任何效果

 HyperLink hyperl = new HyperLink();
                    hyperl.NavigateUrl = "http://www.example.com/";
                    hyperl.Text = "Here is why..";
   ViewBag.check ="You must register"+ hyperl;
您必须注册System.Web.UI.WebControls.HyperLink


我知道我可能只少了一行,但我找不到它。

您可以使用
标记生成器
执行以下操作

 public static TagBuilder CreateAnchor(string text, string url) 
 {
     var anchor = new TagBuilder("a");
     anchor.SetInnerText(text);
     anchor.MergeAttribute("href", url);
     return anchor;
 }
然后像这样传递到ViewBag

 ViewBag.hyperl = CreateAnchor("Here is why..","http://www.example.com/");

您正在将web表单与MVC混合。结果将是令人憎恶的。只需通过查看包发送URL,并在普通锚定标记的标记中使用它:

控制器代码:

ViewBag.LinkAddress = "...";
标记:

<a href="@ViewBag.LinkAddress">Link</a>

试试这个

控制器中

HyperLink hyperl = new HyperLink();
            hyperl.NavigateUrl = "http://www.example.com/";
            hyperl.Text = "Here is why..";
            ViewBag.check = hyperl.NavigateUrl;
            ViewBag.Text = "You must register";
<a href=@ViewBag.check>You must register</a>
视图中

<a href=@ViewBag.check>@ViewBag.text</a>

HyperLink hyperl = new HyperLink();
            hyperl.NavigateUrl = "http://www.example.com/";
            hyperl.Text = "Here is why..";
            ViewBag.check = hyperl.NavigateUrl;
            ViewBag.Text = "You must register";
<a href=@ViewBag.check>You must register</a>