Построить мою Html. Частичную строку в javascript - PullRequest
0 голосов
/ 20 июня 2020

У меня есть функция 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}. Как это обойти?

1 Ответ

0 голосов
/ 20 июня 2020

Похоже, что вам действительно нужно для рендеринга базы сегмента кода HTML на переменной javascript.

Что вам нужно сделать, так это настроить другое действие в вашем контроллер для приема 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...