2012-01-24 8 views
2

Telerik Extensions for ASP.NET MVC 3を使用していますが、アップロードコントロールに問題があります。私は同じページに複数のアップロードコントロールを持っていたいと思います(私はイメージとサウンドファイルなどを求めています)。問題は、最初のアップロードコントロールのみが機能することです。ページ上の他のものはうまくレンダリングされ、それらをクリックするとファイル選択ダイアログが表示されますが、最初のものを除いて実際には応答しません。1ページに複数のTelerik MVCアップロードコントロールがありますか?

Telerikはコンソールなどのエラーを報告していないようですが、単に機能しません。 1ページに複数のアップロードコントロールを許可するために何か具体的なものがありますか?実証するために

、これは動作しません壊れたコードです:

@(Html.Telerik().Upload() 
    .Name("attachments") 
    .Async(async => async.Save("Save", "Resource").AutoUpload(true)) 
    .ClientEvents(events => events 
     .OnSuccess("ItemImageOnSuccess") 
     .OnError("ItemImageOnError") 
    ) 
) 

@(Html.Telerik().Upload() 
    .Name("attachments") 
    .Async(async => async.Save("Save", "Resource").AutoUpload(true)) 
    .ClientEvents(events => events 
     .OnSuccess("ItemSoundOnSuccess") 
     .OnError("ItemSoundOnError") 
    ) 
) 

二アップロードフィールドが正しくレンダリングされますが、動作しません。

答えて

6

同様の問題に遭遇する他の人にとって、私はそれを自分で解決することができました。
私は同じ名前のページにすべてのアップロードコントロールを持っていたので、Telerikのjavascriptはすべて最初のUploadコントロールでのみ動作するようになっていました。修正は明白です:名前を変更してください。

しかし、私が使用していたすべてのアップロードコントロールが同じ関数を指していて、コントロールの名前を変更するとパラメータが正しくマップされず、ただnullファイルリスト。 を修正するには、このの問題を修正するために、フィールド名を伝えるために、.Save()関数に追加のパラメータを追加する必要がありました。ここで

は、上記の私のコードの修正です:

@(Html.Telerik().Upload() 
    .Name("ImageUpload") 
    .Async(async => async.Save("Save", "Resource", "attachments").AutoUpload(true)) 
    .ClientEvents(events => events 
     .OnSuccess("ItemImageOnSuccess") 
     .OnError("ItemImageOnError") 
    ) 
) 

@(Html.Telerik().Upload() 
    .Name("SoundUpload") 
    .Async(async => async.Save("Save", "Resource", "attachments").AutoUpload(true)) 
    .ClientEvents(events => events 
     .OnSuccess("ItemSoundOnSuccess") 
     .OnError("ItemSoundOnError") 
    ) 
) 
+0

おかげで、あなたのポストは私に欲求不満の時間を保存しました! – Paul

関連する問題