1

我在 MVC3 Razor 视图引擎中有一个视图,如下图所示。现在我想确认此链接文本下显示的连接操作输出不是新页面。我怎样才能完成这项工作?

请用示例代码解释。

在此处输入图像描述

我的观点是这样的:

@model ESimSol.BusinessObjects.COA_ChartsOfAccount
@{
    ViewBag.Title = "Dynamic Account Head Configure";
}

<h2>Dynamic Account Head Configure</h2>

<table border="0">
    <tr>
        <td> Select an Server Connection </td>
        <td style="width:5px">:</td>
        <td>@Html.DropDownListFor(m => m.DBConnections, Model.DBConnections.Select(x => new SelectListItem() { Text = x.ConnectionName, Value =  x.DBConnectionID.ToString()}))</td>        
    </tr>
    <tr>
        <td> </td>
        <td style="width:5px"></td>
        <td>@Html.ActionLink("Confirm Connection", "ConformConnection")</td>        
    </tr>
</table>

和我的控制器动作如下:

public ActionResult ConfirmConnection()
        {           
            return PartialView();

        }
4

2 回答 2

0

首先将您的标记移动到局部视图。之后定义一个呈现局部视图的操作方法。

[ChildActionOnly]
public ActionResult ConfirmConnection(COA_ChartsOfAccount model)
{           
    return PartialView("MyPartialView", model);
}

ChildActionOnly 属性确保 HTTP 请求不能调用此操作方法。

然后,您可以随时使用 Html.Action 方法显示它。

@Html.Action("ConfirmConnection", "MyController", new { model = Model })

如果模型没有被您显示的页面更改,则忽略将模型作为参数传递。您可以在您的操作方法中检索它。

于 2012-07-05T11:48:05.760 回答
0

我非常喜欢在这种事情上使用 jquery 和 ajax ... http://api.jquery.com/jQuery.ajax/

如果您遵循典型的 MVC 模型,那么您可以使用类似 ...

@Html.ActionLink("controller", "action", args);

但我会选择ajax驱动的方法......

<script type="text/javascript">
        var ajaxBaseUrl = '@Url.Action("yourController", "ConformConnection", new { args })';
        $(link).click(function () {
            var currentElement = $(this);
            $.ajax({
                url: ajaxBaseUrl,
                data: { any other queryString stuff u want to pass },
                type: 'POST',
                success: function (data) {
                        // action to take when the ajax call comes back
                    }
                });
            });
        });
    </script>
于 2012-07-05T11:54:10.777 回答