6

我有一个 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 操作。第一个是当前用户模型,第二个是字符串变量命名类型。但是在我的操作中,第一个参数是 null。但是字符串参数正确。我怎样才能做到这一点?

4

3 回答 3

4

您不能通过查询字符串传递实例复杂类型。这是使用它的方法:

@Html.ActionLink("Click", "SavePerson", "Meeting", new {x = item.x, y = item.y, ..., type = "participant"}, null)
于 2013-10-14T11:33:41.473 回答
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 = # 将呼叫置于按钮单击或链接单击中,希望这会有所帮助。

于 2013-10-14T13:08:43.517 回答
1

您实际上可以,只是有点奇怪,当您对传递的值(new{})进行编码时,您所要做的就是将它作为您正在构建的新对象传递,因此它最终成为:

@Html.ActionLink("Link Name", "LinkActionTarget", new Object{model = item, type ='Coordinator'}

其中 Object 是对象的名称,model 和 type 是该对象的属性

于 2013-12-09T17:35:46.210 回答