Javascript 构建到MVC控制器的POST url

Javascript 构建到MVC控制器的POST url,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,有人能给我指一下这里的正确方向吗。。。 我在一个网站上有一个表单,我有一个控制器。我想做的是通过url使用jQuery发布表单,如下所示: /localhost:1234/something?FirstLast=Somebody&Mail=something@something.com&Phone=something 这是控制器: [System.Web.Http.HttpPost] public HttpResponseMessage PostPodrskaRequest(s

有人能给我指一下这里的正确方向吗。。。 我在一个网站上有一个表单,我有一个控制器。我想做的是通过url使用jQuery发布表单,如下所示:

/localhost:1234/something?FirstLast=Somebody&Mail=something@something.com&Phone=something
这是控制器:

[System.Web.Http.HttpPost]
public HttpResponseMessage PostPodrskaRequest(string ImePrezime, string Mail, string Telefon, int OdabranaUlogaId)
{
    try
    {
        var r = new Regex(@"^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$");

        if (string.IsNullOrEmpty(ImePrezime) || ImePrezime.Length > 128)
            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Ime i prezime mora biti upisano i ne smije sadržavati više od 128 znakova!");
        if (string.IsNullOrEmpty(Mail) || (!r.IsMatch(Mail)))
            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Neispravna mail adresa!");

        var cnt = this._podrskaService.GetPodrskaContent().First(x => x.Uloga.Id == OdabranaUlogaId);
        this._podrskaService.InsertPodrskaRequest(ImePrezime, Mail, Telefon, cnt.Id, OdabranaUlogaId, this._services.WorkContext.CurrentUser.Id);
    }
    catch (Exception ex)
    {
        this.Logger.Log(LogLevel.Error, ex, "Handled exception!!!");
        _transactionManager.Cancel();
        return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex);
    }

    return Request.CreateResponse(HttpStatusCode.OK, "Zahtjev uspješno poslan.");
}
这是我的jQuery ajax函数:

function submitForm() {
    var params = {
        ImePrezime: $("#Forma").find('input[name="ImePrezime"]').val(),
        Mail: $("#Forma").find('input[name="Mail"]').val(),
        Telefon: $("#Forma").find('input[name="Telefon"]').val()
    }
    var str = param(params);

    greska = 0;
    $.ajax({
        type: 'POST',
        url: '@postUri',
        data: str ,
        success: function (response) {
            alert("Prošlo!");
            console.log("[OK] Poruka poslana na @postUri");
            console.log("ImePrezime" + ImePrezime);
            console.log("Mail" + Mail);
            console.log("Telefon" + Telefon);
            },
            error: function () {
                alert("Nije prošlo! :'( ");
                console.log("[FAIL] Poruka poslana na @postUri");
                console.log("ImePrezime" + ImePrezime);
                console.log("Mail" + Mail);
                console.log("Telefon" + Telefon);
            }



        });

    }

我猜你把
GET
POST
混在一起了。当您使用URL发送参数时,这是一个
GET
请求。如果在正文中发送,则为
POST

如果使用
GET
,而服务器需要
POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)

您必须使用而不是
$。get
才能将其作为
POST
请求



关于您的更新:您正在将一个方法传递到
数据中。这是不允许的。只需输入您的
var参数
,您应该在调用
$之前准备好它。ajax

我猜您将
GET
POST
混合在一起。当您使用URL发送参数时,这是一个
GET
请求。如果在正文中发送,则为
POST

如果使用
GET
,而服务器需要
POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)

您必须使用而不是
$。get
才能将其作为
POST
请求



关于您的更新:您正在将一个方法传递到
数据中。这是不允许的。只需输入您的
var参数
,您应该在调用
$之前准备好它。ajax

我猜您将
GET
POST
混合在一起。当您使用URL发送参数时,这是一个
GET
请求。如果在正文中发送,则为
POST

如果使用
GET
,而服务器需要
POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)

您必须使用而不是
$。get
才能将其作为
POST
请求



关于您的更新:您正在将一个方法传递到
数据中。这是不允许的。只需输入您的
var参数
,您应该在调用
$之前准备好它。ajax

我猜您将
GET
POST
混合在一起。当您使用URL发送参数时,这是一个
GET
请求。如果在正文中发送,则为
POST

如果使用
GET
,而服务器需要
POST
,则永远无法通过该操作(例如,这是为了防止XSS/CSRF)

您必须使用而不是
$。get
才能将其作为
POST
请求




关于您的更新:您正在将一个方法传递到
数据中。这是不允许的。只需输入您的
var参数
,在调用
$之前您应该准备这些参数。ajax

为什么您一直在更改您的问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入
数据:params
。您为什么不断更改问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入
数据:params
。您为什么不断更改问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入
数据:params
。您为什么不断更改问题?你一直在否定我的答案…哦,对不起,我应该通过对你答案的评论来分享新代码吗?你为什么需要分享它?如果没有必要,就不要发布它。那么答案就足够了。如果答案没有帮助,请说明原因。回答者可能会问代码,但这通常是无休止讨论的开始。代码不起作用,试图找出原因。我的控制台显示ReferenceError:param未定义只需传入
数据:params