2013-11-26 127 views
2

參考外部DLL我有一個MVC 4應用程序,在這裏我想打電話給我的外部DLL(.NET項目也一樣),這將返回我的數據集。儘管我有參考,但我無法在我的項目中找到它。該DLL項目名稱是PScope.Optimizer。它給我的錯誤 - 0x800a1391 - JavaScript的運行時錯誤: 'PScope在' 未定義在MVC 4 Razor視圖

這是從DLL的代碼示例:

Public Class Main 
Public Sub Main(connString As String, tenantID As Int16) 
    Connection_String = connString 
    Tenant_ID = tenantID 
End Sub 
Public Function MyFunc() As Integer 

    Return 0 
End Function 

末級

這是代碼MVC:

@using PScope.Optimizer; 

<!DOCTYPE html> 

<html> 
<head runat="server"> 
    <meta name="viewport" content="width=device-width" /> 

    <script " type="text/javascript"> 
     function OnButtonClick(s, e) { 
      var main1 = new PScope.Optimizer.Main(); 
     } 
    </script> 
</head> 
<body> 
    <div> 

     @Html.DevExpress().Button(settings => 
    { 
     settings.Name = "Button"; 
     settings.Text = "Run Optimiser"; 
     settings.ToolTip = "This may take a while. Please be patient"; 
     settings.ClientSideEvents.Click = "function (s, e) { OnButtonClick(s, e); }"; 
     //settings.UseSubmitBehavior = true; 

    }).GetHtml() 
    </div> 
</body> 
</html> 

回答

0

也就是說MVC,對不對?如在模型,視圖,控制器中一樣?然後,如果你的DLL返回一個數據集,爲什麼它與View有什麼關係?它不應該最終在Model或ModelView中,並且由控制器調用嗎?你的javascript代碼應該只是在控制器中調用一個方法。

在我看來就像你正試圖走捷徑控制器。

看起來你想在視圖中混合使用服務器和客戶端代碼,但對我來說,打敗MVC的目的將會得到的唯一好處是將MVC帶來的問題徹底分開。這不是因爲應該做的事情是有可能的......

+0

嗨,伯納德,我剛開始的時候並沒有清楚的說明這應該如何工作。現在我更瞭解MVC。謝謝! :) –

0

看來您正在嘗試將C#代碼作爲JavaScript運行。

嘗試這樣:

<script language="C#" runat="server"> 
+0

runat =「server」,在MVC中?你確定 ???? – BernardG

+0

它不是'正確'的方式,但這是他想要的,並回答了他的問題。 – rhughes

+0

這是甚至可能在MVC?這會做什麼..?它是否等同於'@ {...}'語法或...?我現在很困惑。 – Nenotlep