C# 如何返回带有@Url.Action的字符串
如何返回带有url的模型属性并将其放在onclick上,如下所示: 型号:C# 如何返回带有@Url.Action的字符串,c#,html,asp.net-mvc,razor,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" + "')";
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中它不能正确地呈现首先,决定一个案例。您正在模型中使用
link
,在控制器中使用link
,在视图中使用link
。在C#中,这些都意味着不同的事情。选择一个,让它们都一样
其次,@
表示法是一种语法。将其添加到字符串中,然后使用razor将该字符串注入到视图中。但到那时,Razor将不再处理它,所以它将保持为@Url.Action…
您应该在控制器中执行此操作,以便它将变量设置为实际URL(不仅仅是“@URL.Action…”
):
或者,最好只需在视图中调用Url.Action
,即可得到完全相同的结果:
<a class="font" href="@Url.Action("Index", "Users")">Click Here</a>
model.Link=Url.Action(“actionName”、“controllerName”);这是在控制器中生成url的方法。对于您的案例,Link=Url.Action(“索引”、“用户”);此外,它将是@Model.Link
(区分大小写),尽管该链接属性有三种不同的情况!另外,使用锚定标记的href
属性!它呈现不正确:html结果是它应该在那里-同样,你需要删除引号,并确保你使用的是System.Web.Mvc;但我想在控制器中定义url并在视图中使用。在控制器中,无法识别URL。请确保使用了正确的大小写。它是Url
,而不是Url
<代码>Url。在控制器中识别操作。我刚试过。Url
是Controller
的一个属性,所以请确保您的控制器类继承自Controller
(尽管我不知道如果不是,您的应用程序如何工作),它只呈现onclick=“/Users”,而不是onclick=“/Users/Index”。错误:无效的正则表达式:缺少/索引操作始终是默认操作,因此“/Users”将在用户
控制器中使用索引操作。
<a class="font" href="@Url.Action("Index", "Users")">Click Here</a>