在 javascript 中构建我的 Html.Partial 字符串
Build my Html.Partial string in javascript
我有一个 javascript 函数,它接受包括要加载的页面名称在内的参数。我希望能够根据此信息构建对 Html.Partial 的调用。我想做的是:
function tabs_itemClick(e) {
alert("my path should be [" + e.itemData.Path + "]";
var url = '_' + e.itemData.Path;
@{Html.Partial(url, new ActivityLog());
}
显然这失败了,因为变量 url 对于 @{Html.Partial} 不存在。你如何解决这个问题?
看起来您真正想要的是根据javascript变量呈现HTML代码段。
您需要做的是在您的控制器中设置另一个操作以接受来自前端的 ajax 调用。
在控制器中定义一个接受局部视图名称的动作:
[HttpGet("/api/employee-login")]
public ActionResult EmployeeLogin(string partialViewName)
{
return PartialView(partialViewName , new ActivityLog());
}
之后创建局部视图,并放置在相应目录下。
在您的前端,您应该使用您的部分视图名称触发 GET ajax 调用,例如
var myViewName = "_" + e.itemData.Path;
$.get("/api/employee-login", { partialViewName: myViewName,} )
.done(function( data ) {
/* inject the HTML segment returned into your document */
});
/* you may also need some code to handle some situations e.g. view not found */
例如,如果 e.itemData.Path
= "_myView",那么您需要在项目中定义一个名为 _myView.cshtml
的局部视图。
我有一个 javascript 函数,它接受包括要加载的页面名称在内的参数。我希望能够根据此信息构建对 Html.Partial 的调用。我想做的是:
function tabs_itemClick(e) {
alert("my path should be [" + e.itemData.Path + "]";
var url = '_' + e.itemData.Path;
@{Html.Partial(url, new ActivityLog());
}
显然这失败了,因为变量 url 对于 @{Html.Partial} 不存在。你如何解决这个问题?
看起来您真正想要的是根据javascript变量呈现HTML代码段。
您需要做的是在您的控制器中设置另一个操作以接受来自前端的 ajax 调用。
在控制器中定义一个接受局部视图名称的动作:
[HttpGet("/api/employee-login")] public ActionResult EmployeeLogin(string partialViewName) { return PartialView(partialViewName , new ActivityLog()); }
之后创建局部视图,并放置在相应目录下。
在您的前端,您应该使用您的部分视图名称触发 GET ajax 调用,例如
var myViewName = "_" + e.itemData.Path;
$.get("/api/employee-login", { partialViewName: myViewName,} )
.done(function( data ) {
/* inject the HTML segment returned into your document */
});
/* you may also need some code to handle some situations e.g. view not found */
例如,如果 e.itemData.Path
= "_myView",那么您需要在项目中定义一个名为 _myView.cshtml
的局部视图。