[英]is there a way to get controller path for an ajax call within a partial view?
所以我有一个局部视图,它只是一个小部件,允许用户选择日期并按日期过滤结果。 这个局部视图可以在很多页面上显示,所以我想完全解耦它并重用它。 我想添加事件侦听器,以提交日期部分视图所在的任何形式。
在我的主要观点中,我有
@{using (Html.BeginForm("getActivityManagementTwoActivities", "CallCenter", FormMethod.Get, new { id = "ActivityTwoForm" }))
{
<div class="row ">
<div class="col-md-12" style="float:right;">
<div class="dateWrapper">@{ Html.RenderPartial("_DateFilter"); } </div>
</div>
//...
@{ Html.RenderPartial("_ActivityManagementCollapseComponent", Model);
}
我的控制器:
public async Task<PartialViewResult> getActivityManagementTwoActivities(DateFilterModel filters, int results = 25)
{
var model = await GetFullAndPartialViewModel(filters, results);
return PartialView("_ActivityManagementCollapseComponent", model);
}
我的日期部分视图:
<div class="date-text-collapsible">
<form method="get">
<table>
<tr>
<td style="text-align:right; vertical-align: top; width: 160px">
Time filter:
</td>
<td style="display:inline-block; width:150px">
<input id="radio1" name="radioToggle" type="radio"> Recent
<select id="timeFilter" name="timeFilter" class="hokage">
<option value="Last 30 days">at least 18</option>
</select>
<br />
<input id="radio2" name="radioToggle" class="radioTimeFilter" type="radio"> Date Range
<div id="dateContent" class="radio-content" style="display:none;">
<input id="txtDateOneFilter" type="text" style="width: 80px;" placeholder="Start Date" name="dateStart" class="hokage" /> to
<input id="txtDateTwoFilter" type="text" style="width: 80px;" placeholder="End Date" name="dateEnd" class="hokage" />
</div>
<br />
</td>
</tr>
</table>
</form>
我尝试以这种方式添加事件侦听器:
var inputDateBoxes = document.getElementsByClassName("hokage");
addOnChangeListenersToSubmit(inputDateBoxes);
function addOnChangeListenersToSubmit(arrayOfElements) {
for (var i = 0; i < arrayOfElements.length; i++) {
arrayOfElements[i].addEventListener('change', function () {
this.form.submit();
})
}
}
但这种方式失败了,它只返回部分视图本身。 我在想这不能是一种形式,我需要指定 ajax 或其他东西。 如何从日期过滤器部分更新部分视图?
您可以使用一堆 razor 语法来获取控制器名称和操作名称:
string controllerName = this.ViewContext.RouteData.Values["controller"].ToString();
string actionName = this.ViewContext.RouteData.Values["action"].ToString();
你可以从那里建造。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.