我试图在我的下拉列表中选择文件名,然后用选择框的名称文件调用我的GetFile函数,然后在TextArea中输出它。
但是我无法将数据传递给GetFile(nameFile)
我的下拉列表,包含我的xml文件名:
<div class="card" style="padding:20px">
<h4 class="mb-0">Sélection d'un fichier model XML </h4>
@Html.DropDownListFor(model => model.ListeFichiers, ((Dictionary<string, string>)Model.ListeFichiers).Select(e => new SelectListItem() { Text = e.Key, Value = e.Value }).ToList(),
new { @class = "form-control", @id = "listeFichierTransmettre" })
</div>
我的GetFile函数,将从下拉列表中检索到的文件名作为参数
public string GetFile(string nomFichier)
{
string path = @"C:xmlFiles" + nomFichier;
string fileContent;
using (StreamReader streamReader = new StreamReader(@path, Encoding.UTF8))
{
fileContent = streamReader.ReadToEnd();
}
return fileContent;
}
之后,我想输出在TextArea返回的GetFile字符串:
<div class="card-body" id="XMLResult">
@Html.TextArea("Info", new { cols = "75", rows = "15", @readonly = "readonly", @disabled = "disabled", style = "min-width:100% !important;" })
</div>
我试过,但我的文件名总是空的,所以很明显我做错了:
$(document).ready(function () {
$("#listeFichierTransmettre").change(function () {
$.ajax({
type: "POST",
url: '/Information/GetFile',
data: $('#listeFichierTransmettre').serialize(),
dataType: 'json',
success: function (result) {
console.log(result);
}
})
return false;
});
});
更改脚本为:
$(document).ready(function() {
$("#listeFichierTransmettre").change(function() {
$.ajax({
type: "POST",
url: '/Information/GetFile',
data: {
nomFichier: $("#listeFichierTransmettre").find(":selected").val()
},
dataType: 'json',
success: function(result) {
console.log(result);
$("#Info").val(result);
}
})
return false;
});
});