MVC razor(VB)構文でボタンクリック時にFolderBrowseDialogを開きたい。
そのために、「onclick」ボタンイベントでjquery関数を呼び出し、その関数を介して、FolderBrowseDialogを表示するコードを含むPostリクエストをコントローラーで機能させています。
これが私のコードです。
HTML:
<input type="button" class="btn" value="browse" onclick="SelectFolder()"/>
jquery:
<script type="text/javascript">
function SelectFolder()
{
$.post("@Url.Action("FolderPicker", "Home")", function () {
alert('sdd');
},function(ex){
alert("Error occured in AJAX");
});
}
</script>
Controller..FolderBrowserDialogを表示するvbコード。
<STAThreadAttribute()>
Sub FolderPicker()
Dim browser As FolderBrowserDialog = New FolderBrowserDialog()
browser.Description = "Select Folder"
browser.ShowNewFolderButton = False
browser.RootFolder = Environment.SpecialFolder.Desktop
Dim result As DialogResult = browser.ShowDialog()
If result = DialogResult.OK Then
Dim selectedPath As String = browser.SelectedPath
End If
End Sub
Dim result As DialogResult = browser.ShowDialog()で例外が発生します
Current thread must be set to single thread apartment (STA) mode before OLE
calls can be made. Ensure that your Main function has STAThreadAttribute
marked on it. This exception is only raised if a debugger is attached to the
process.
STATreadAttribute()とSTATread()も含めましたが、それでもこのエラーが発生します。
私は何かが足りないのですか?それを行う他の方法はありますか?