如何使用@ Url.Action返回字符串

时间:2018-11-22 17:32:14

标签: c# html asp.net-mvc razor

如何返回带有url的模型属性,并将其放在onclick上,如下所示:

型号:

public class MyModel
{
     public string link {get;set;}
}

控制器:

public ActionResult Index()
{
    MyModel oMyModel = new MyModel();
    oMyModel.Link = "@Url.Action('" + "Index" + "', '" + "Users" + "')";

    return View(oMyModel);
}

视图中:

 <a class="font" href="#" onclick="@Model.LINK">Click Here</a>

但是在html中,它不能正确渲染

1 个答案:

答案 0 :(得分:0)

首先,决定一个案例。您在模型中使用link,在控制器中使用Link,在视图中使用LINK。在C#中,所有这些都具有不同的含义。选择一个并使它们相同。

第二,@表示法是Razor语法。您将其添加到字符串中,然后使用剃刀将该字符串注入视图中。但是到那时,Razor不会再对其进行处理,因此它仍为@Url.Action...

您应该在控制器中执行此操作,因此它将变量设置为实际URL(而不仅仅是"@Url.Action..."):

oMyModel.Link = Url.Action("Index", "Users");

或者最好在您的视图中调用Url.Action,这将为您带来完全相同的结果:

<a class="font" href="@Url.Action("Index", "Users")">Click Here</a>