Я использую функцию, которая извлекает вывод из скрипта PowerShell в выходную переменную String. Мне нужно вызвать эту функцию внутри @HTMLTextBox, чтобы загрузить значение.
Я создал функцию и использую формат бритвы для вызова функции внутри элемента текстового поля.
@using System.Management.Automation
@functions {
public string PowerShellExecutor(string script) {
var shell = PowerShell.Create();
string outString = "";
shell.Commands.AddScript(script);
var results = shell.Invoke();
if (results.Count>0)
{
var builder = new StringBuilder();
foreach (var psObj in results)
{
builder.Append(psObj.BaseObject.ToString() + "\r\n");
}
outString = Server.HtmlEncode(builder.ToString());
}
return outString;
}
}
<div class = "col-md-12">
@Html.TextBox("txtDirectory", @PowerShellExecutor("$env:USERDNSDOMAIN") , new { @class = "form-control", @type = "number"})
</div>
Предполагается, что текстовое поле заполняет значение вывода, полученное при передаче команды через функцию. Тем не менее, он показывает пустым.
Ой мой плохой ^-^
Удалите @ для PowerShellExecutor
, и вы также должны удалить @type = "number"
, чтобы ваше текстовое поле принимало строку.
@Html.TextBox("txtDirectory", PowerShellExecutor("$env:USERDNSDOMAIN") , new { @class = "form-control"})
Спасибо, Ахмед, как раз собирался уточнить это благодаря @Elyas Esna.
удали эту часть
@type = "number"