【发布时间】:2021-07-08 20:30:33
【问题描述】:
我正在使用 ASP.NET MVC。我有一个动作,我调用它来获取部分视图。我使用@Html.Action() 来获取部分视图。它工作正常,但仅适用于id=533。假设当用户单击网格按钮时,我们可以调用 Javascript 函数。从该函数中,我如何将 id 和 tab 值传递给 Html.Action() 并检索部分视图 html/js。仅供参考 - 部分视图的 Javascript 也必须工作。
<div ng-controller="submissionDashboardController">
@Html.Action("SubmissionHeader", "Submission", new { id = 533, tab = 0 })
</div>
@using (Html.RequiredScripts())
{
@Html.RequirePageScript("Shared", "ShortcutLinks")
@Html.RequirePageScript("Submission", "ListSubmissionDashboard")
@Html.RequirePageScript("Shared", "GridPersonalization")
@Html.RequirePageScript("Shared", "SubmissionCreation")
}
这是提交控制器中的 SubmissionHeader 操作。
[ChildActionOnly]
public ActionResult SubmissionHeader(int? id, SubmissionTabEnum tab = SubmissionTabEnum.None)
{
// More logic and code here...
TempData["SubmissionHeaderID"] = id;
return PartialView("_SubmissionHeader", model);
}
附加注释/代码:这是 JavaScript Ajax 调用,用于将 div 替换为最新的 html 响应。与局部视图关联的这种方法的问题 java 脚本不起作用,任何从 html 响应触发的事件都不起作用。
被 html ajax 调用响应替换的 Div。
<div id="comment"></div>
这是调用ajax传递动态参数的javascript函数-
<script>
function DisplayCommentDialog(SubmissionID) {
// Ajax Call for Dynamic Parameters and html partial view response
$.ajax({
type: 'POST',
dataType: 'html',
url: '/Submission/SubmissionHeader',
async: false,
data: { id: SubmissionID, tab: 0 },
success: function (result) {
commentDiv = result;
$("#comment").html(commentDiv);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
}
</script>
【问题讨论】:
-
这个问题太笼统了。 “所以它适用于所有 id”是什么意思。你打算如何传递这些 id?
-
在示例中 id = 533。它也应该适用于其他 id,例如 516、578 等。所有这些值都假定动态传递而不是硬编码在代码中。
-
您可以将模型或视图包中的参数从控制器传递到视图。
-
我有模型中的 id,但是当用户单击按钮时,如何在 @Html.Action() 中动态传递 id?
-
这必须在例如javascript中完成。
标签: javascript angularjs asp.net-mvc asp.net-ajax html.actionlink