你如何为elements属性写出MVC Action

时间:2013-08-15 05:31:52

标签: .net asp.net-mvc

你如何写出我试图做的元素的动作

data-yes="@{Url.Action("DeleteAndAppend", "DepartmentsController", new { id = item.DepartmentId });}" but I always getting nothing

并尝试了这一点,我没有得到行动或路径的输出

data-yes="@{Html.Action("DeleteAll", new { id = item.DepartmentId });}"

我只想要动作的路径和带有id输出的控制器 有谁知道怎么做

2 个答案:

答案 0 :(得分:2)

大括号(@{})定义代码块,“output”(在这种情况下只是返回值)将被丢弃。请注意,您必须在该行之后使用分号。

相反,我相信你想要:

data-yes="@Url.Action("DeleteAndAppend", "DepartmentsController", new { id = item.DepartmentId })"

是的,它很聪明,可以确定引用属于谁。


如果您想要明确,也可以使用括号@()

data-yes="@(Url.Action("DeleteAndAppend", "DepartmentsController", new { id = item.DepartmentId }))"

当您需要在值之后放置文本时,这非常有用,而且之间没有空格:

<p>This is your @(Model.NumberOfVisits)th visit here!</p>

答案 1 :(得分:2)

首先,您不应该使用@ {},此语法用于执行实际上不向渲染视图输出任何内容的代码。

简单写一下

data-yes="@Url.Action(...)"

Razor引擎会知道C#代码在右括号处结束。

您也可以使用Url.RouteUrl:

@Url.RouteUrl(new {controller= "Departments", action = "DeleteAndAppend", id = item.DepartmentId })