jquery を使用してファイルをアップロードし、3 つのパラメーターをコントローラーに渡します。パラメータの1つを渡すことができ、他の2つのパラメータはドロップボックスから選択されます。ドロップ ボックスの 2 つのパラメータが、アップローダで以下のコードにバインドされていないようです
params: {fileType: @Model.fileType, employeeId: @Model.employeeId, trainId: @Model.trainId },
以下は、ファイルをアップロードするための私のコードです
<script type="text/javascript">
window.onbeforeunload = function() {
// This function does nothing. It won't spawn a confirmation dialog
// But it will ensure that the page is not cached by the browser.
};
var button = $('#fileUpload')[0];
var uploader = new qq.FileUploader({
element: button,
allowedExtensions: ['doc', 'docx', 'xls', 'xlsx', 'pdf'],
sizeLimit: 2147483647, // max size
action: '/Home/UploadFileToServer',
multiple: false,
params: {fileType: @Model.fileType, employeeId: @Model.employeeId, trainId: @Model.trainId },
onComplete: function(id, fileName, responseJSON) {
$.ajax({
url: "/Home/DetailsFiles",
data: { id: @Model.employeeId },
cache: false,
dataType: "html",
success: function(data) {
$("#employee_files").html(data);
}
});
}});
私のビューモデルは次のとおりです。
public int employeeId;
public int fileType;
public int trainId;
public File file;
public SelectList FileTypeList { get; set; }
public SelectList TrainingList { get; set; }
私のドロップボックスは次のとおりです。
<div id="trainFile">
<div class="editor-label">
Dosya Tipi
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.fileType, Model.FileTypeList)
</div>
<div class="editor-label">
Eğitim
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.trainId, Model.TrainingList)
</div>
</div>
次の div を使用してファイルをアップロードするには:
<div id="fileUpload">
<noscript>
<p>
Please enable JavaScript to use file uploader.</p>
<!-- or put a simple form for upload here -->
</noscript>
</div>
値がモデル プロパティにバインドされていない理由がわかりません。コントローラーのデバッグ ポイントに到達すると、パラメーター値が 1 つだけ渡されていることがわかります。理由は何ですか?また、これを修正するにはどうすればよいですか?
編集1
ドロップダウン リストから選択した値が変数にバインドされていないようです。