从jquery中的api调用接收api控制器中的模型

时间:2017-07-29 10:37:10

标签: javascript jquery asp.net asp.net-mvc asp.net-core-mvc

我可以在asp.net中执行此操作,但它不适用于asp.net核心。

我有一个视图广告我称之为JavaScript函数,它接受该视图的模型并调用我的api控制器。

当我在api调用之前设置断点时,我可以看到模型的值和api控制器方法被调用。

但是,控制器收到的模型对象总是为空?

查看

@model InformedWorker.Services.Models.Registration
@inject IJsonHelper Json;


<div class="row" style="display:none" id="divRegistration">
<div class="col-xs-6">
    <div class="well">
        <div class="form-group">
            <label asp-for="EmailAddress" class="control-label"></label>
            <input type="text" class="form-control" id="EmailAddress" name="EmailAddress" value="@Model.EmailAddress" required="" title="Please enter you username" placeholder="example@gmail.com">
            <span class="help-block"></span>
        </div>
        <div class="form-group">
            <label asp-for="Password" class="control-label">Password</label>
            <input type="password" class="form-control" id="Password" name="Password" value="@Model.Password" required="" title="Please enter your password">
            <span class="help-block"></span>
        </div>
        <div class="form-group">
            <label asp-for="ConfirmPassword" class="control-label"></label>
            <input type="password" class="form-control" id="ConfirmPassword" name="ConfirmPassword" value="@Model.ConfirmPassword" required="" title="Please confirm your password">
        </div>
        <div id="registerErrorMsg" class="alert alert-error" style="display:none">Invalid registration</div>
        <a onclick="RegisterProxy();" class="btn btn-success btn-block">Register</a>
    </div>
</div>
<div class="col-xs-6">
    <p class="lead">Already Registered?</p>
    <p><a onclick="showLogInPage();" class="btn btn-info btn-block">LogIn</a></p>
</div
</div>


<script type="text/javascript">
    function RegisterProxy() {
        var model = @Html.Raw(Json.Serialize(Model));
        Register(model);
    }
</script>  

我的网站.js

function Register(model){     试试{

    $('#registerErrorMsg').html('');

    var uri = '/api/Registration';

    $.ajax({
        url: uri,
        type: 'POST',
        contentType: 'application/json',
        data: model,
        success: function (result) {
            alert('success');
        }
    });
}
catch (err) {
    $("#registerErrorMsg").css("display", "block");
    $('#registerErrorMsg').html(err);
}
return false;

[Route("api/Registration")]
public class Registration : Controller
{
    // POST api/values
    [HttpPost]
    public void Post([FromBody]Registration value)
    {

    }
}

0 个答案:

没有答案