0

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()も含めましたが、それでもこのエラーが発生します。

私は何かが足りないのですか?それを行う他の方法はありますか?

4

2 に答える 2

0

STATreadAttributeは、プログラムのMain関数、つまりプログラムのエントリポイントにある必要があります。

于 2012-09-19T09:29:03.223 に答える
0

FolderBrowseDialogは、ASP.NET/MVCでは使用できません。あなたはここで
いくつかのより多くのものを読むことができます。

于 2012-09-19T11:33:10.620 に答える