如何返回带有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中,它不能正确渲染
答案 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>