在 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 的局部视图。