gpt4 book ai didi

asp.net-mvc-3 - 是否可以使用 AJAX 访问 html 帮助程序?

转载 作者:行者123 更新时间:2023-12-02 13:44:09 25 4
gpt4 key购买 nike

在asp.net mvc3中,

我正在使用 JavaScript API 来动态呈现用户界面。输入部分的一部分将取决于用户想要输入数据的项目数量。结果,像这样的事情是行不通的

@(Html.EditorFor(m => m.P[5].C.Description))

因为这不能在运行时完成。我将使用什么类型的流程在运行时使用 AJAX 调用该帮助程序?我是否有一个仅返回使用 $.ajax() 调用的信息的 Controller 操作?它会位于与 Controller 操作不同的位置吗?

最佳答案

在运行时,您可以对 Controller 操作执行 ajax get 操作,该操作会将 View 呈现为字符串,而该字符串又可以插入/附加到 DOM 中。

创建一个返回 JSON 的新操作结果,如下所示:

    return new JsonResult
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new { html = this.RenderPartialViewToString("YourPartialView", model) }
};

请注意,上面使用了以下 Controller 扩展:

    public static string RenderPartialViewToString(this Controller controller, string viewName = null, object model = null)
{
if (string.IsNullOrEmpty(viewName))
{
viewName = controller.ControllerContext.RouteData.GetRequiredString("action");
}

controller.ViewData.Model = model;

using (var sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}

有关此扩展方法的进一步阅读:http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/

剩下的就是执行 get 操作,传递一个参数,该参数表示要渲染的项目数量,并将返回的内容附加到 View 中。也许是这样的:

    $.getJSON('url', numberofitems, function (data) {
$('#somecontainer').html(data.html);
});

关于asp.net-mvc-3 - 是否可以使用 AJAX 访问 html 帮助程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com