我是否正确地从我的AngularJS代码调用我的控制器功能(vb.net)?

时间:2014-07-30 19:09:43

标签: asp.net-mvc vb.net angularjs

我是ASP.NET MVC的新手,我不太确定我的NewTextFile Sub是否被正确调用。这个方法的作用是它只是在我的本地服务器上创建一个文本文件。作为一个新手我欣赏你看看。谢谢。

function TableController($scope) {
    $scope.requests = [];

    $scope.addCertificate = function () {
        var certificate = {
            emailAddress: $scope.emailAddress,
            certificateType: $scope.certificateType,
            searchType: $scope.searchType,
            submittedNumbers: $scope.submittedNumbers,
        };

        $scope.requests.push(certificate);
    };

    $scope.removeCertificate = function (index) {
        $scope.requests.splice(index, 1);
    };

    $scope.requestThatCertificatesBeEmailed = function () {
        for (index = 0; index < $scope.requests.length; ++index) {
            alert('For loop entered, hello!')
            var submittedEmailAddressString = $scope.requests[index].emailAddress;
            var submittedCertificateTypeString = $scope.requests[index].certificateType;
            var submittedSearchTypeString = $scope.requests[index].searchType;
            var submittedSearchString = $scope.requests[index].submittedNumbers;

            alert(submittedSearchTypeString);

            $.ajax({
                url: '/Controllers/CreateTextFile/NewTextFile',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({
                    submittedEmailAddress: submittedEmailAddressString,
                    submittedCertificateType: submittedCertificateTypeString,
                    submittedSearchType: submittedSearchTypeString,
                    submittedSearch: submittedSearchString
                }),
                processData: false,
                dataType: 'json'
            });
            alert('Succesfully submitted request')
        }
    };
}

这是我的vb.net控制器类:

Imports System.Threading.Tasks
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports Microsoft.Owin.Security

Public Class CreateTextFileController

    Inherits System.Web.Mvc.Controller

    <HttpPost> _
    <NonAction()> _
    Private Sub NewTextFile(submittedEmailAddress As String, submittedCertificateType As String, submittedSearchType As String, submittedSearch As String)

    //Create Textfile on local server here given the input parameters

    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

我认为,从您在angularjs文件中调用的URL判断,您丢失的关键成分称为“路由”。以下是一些有用的链接:

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs

http://www.asp.net/mvc/overview/controllers-and-routing

简而言之,“路由”是MVC用来描述“将网址与控制器方法关联”的术语。您的角度文件:

$.ajax({ url: '/Controllers/CreateTextFile/NewTextFile', ...

不会做你想要的,因为路由从文件路径中抽象出url。您将使用文件路径和方法名称作为URL,这不一定是这种情况。路由是非常强大的,你可以有多个网址映射到一个方法,或者一个方法映射到多个具有各种模式的网址,一旦你掌握了它,你会想知道没有它你做了什么。

另外,你应该注意使用$http angular模块执行jQuery的ajax请求的注释,因为它更好地与angularjs框架集成。