Я не уверен, как вы передадите данные из c # в файл * .js в вашем случае, я не думаю, что это возможно. Но вы можете попробовать взломать страницу, содержащую файл * .js, вы можете попытаться объявить и установить переменную javascript для кода c # (например, в ASPX, если это ASP.NET), а затем поместить ссылку включения * .js. после этой точки и в ней не повторное объявление переменной, а ее использование. Вы также можете использовать JSON или AJAX для вызова кода на стороне сервера, возврата значений и выполнения кода.
Сценарий 1: (Способ взлома, который не чист и труден в обслуживании, но выполняет свою работу)
File.aspx
<script language="javascript" type="text/javascript">
var MyVariable = "<%=C_Variable_On_Code_Behind%>";
</script>
<script type="text/javascript" src="/scripts/YourJsFile.js" >
</script>
YourJsFile.js
if(MyVariable != null && MyVariable.length > 0){
//Do some thing.
}
Сценарий 2: (JSON, AJAX, JQUERY UI)
JQuery UI образец для автозаполнения: попробуйте эту ссылку
Другой пример: Или эта ссылка
Сценарий 3: (Запись клиенту с серверной стороны c #)
Используйте RegisterStartupScript
или RegisterClientScriptBlock
через объект ClientScriptManager
. Вот фиктивный код, который я собрал, чтобы вы могли найти его и найти идею, чтобы узнать больше, это не означает, что он полон код.
ClientScriptManager script = Page.ClientScript;
if (!script.IsClientScriptBlockRegistered(this.GetType(), "YourLabelForThis"))
{
script.RegisterClientScriptBlock(this.Page.GetType(), "YourLabelForThis",
"<script type=\"text/javascript\">var MyVariable = "Dummy text";</script>", false);
}
Обратите внимание, что вы должны поместить js-код в качестве включаемого или дополнительного кода в нужное место на странице, куда бы вы ни захотели, до или после этого кода, поэтому ищите RegisterStartupScript
или RegisterClientScriptBlock
через ClientScriptManager
. Чтобы увидеть, где будет размещен ваш код и как вы должны его обрабатывать. Также посмотрите на источник страницы в вашем браузере, чтобы увидеть его.