我有一个ASP.NET MVC 4应用程序。我的应用程序中有一个剃刀视图,它使用List类型作为模型。
@model List<MeetingLog.Models.UserModel>
@{
Layout = null;
}
.
.
.
我正在迭代模型变量,如下所示:
@foreach (var item in Model)
{
<tr>
<td>
@item.Name
</td>
<td>
@item.Surname
</td>
<td>
@Html.ActionLink("Click", "SavePerson", "Meeting", new {model = item, type = "coordinator"}, null)
@Html.ActionLink("Click", "SavePerson", "Meeting", new {model = item, type = "participant"}, null)
</td>
</tr>
}
我需要将两个变量传递给具有操作链接的SavePerson操作。第一个是当前的UserModel,第二个是名为type的字符串变量。但在我的行动中,第一个参数是null。但字符串参数正确。我怎样才能做到这一点?
答案 0 :(得分:4)
您无法通过查询字符串传递实例复杂类型。这是使用它的方式:
@Html.ActionLink("Click", "SavePerson", "Meeting", new {x = item.x, y = item.y, ..., type = "participant"}, null)
答案 1 :(得分:4)
我使用ajax调用
$('.btnSave').on('click', function(){
$.ajax({
url: '@(Url.Action("SavePerson", "Meeting"))',
type: 'post',
data: {
Value1: 'Value1',
Value2: 'Value2'
},
success: function (result) {
alert('Save Successful');
}
});
});
然后按下按钮点击或点击链接,如果你想要href =#希望这有帮助。
答案 2 :(得分:1)
当您编写传递的值(new {})时,您实际上可以,这有点奇怪 你要做的就是把它作为你正在构建的新对象传递给它,最终成为:
@Html.ActionLink("Link Name", "LinkActionTarget", new Object{model = item, type ='Coordinator'}
其中Object是对象的名称,而model和type是该对象的属性