javascript - 问题将 MVC 中的模型对象获取到 jQuery 变量

标签 javascript jquery ajax asp.net-mvc asp.net-mvc-4

我正在尝试将 View 中的 MVC 模型对象传递给 Controller ​​操作方法以访问我的数据库.......我要将该元素添加到数据库中.. ......但我不知道如何将该模型对象放入 jQuery 变量......我尝试了两种方法来做到这一点......

var modelDataJSON = @Model;
var modelDataJSON = @Html.Raw(Json.Encode(Model));

这两种方式都会给我带来语法错误.............. 这就是我的 jQuery 函数的样子:

$('#submit').click(function () {    
    var modelDataJSON = @Model;
    @*var modelDataJSON = @Html.Raw(Json.Encode(Model));*@    
      $.ajax({
          type: "POST",
          url: '@Url.Action("AddDoctor")',
          data: {"doctor" : modelDataJSON},
          success: function (data) {
                alert(JSON.stringify(data.Message));     
          },
          error: function () {
                alert("Error!!!");
         }

    });
    return false;  


}); 

这就是我的表单的样子:

@using (Html.BeginForm("AddDoctor", "Doctor"))
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4></h4>
        <hr />
        @Html.ValidationSummary(true)

        <div class="form-group">
            @*@Html.LabelFor(model => model.UserId, new { @class = "col-sm-2 control-label" })*@
            <label class="col-sm-2 control-label"> User ID</label>
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.UserId, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.UserId)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Name, new { @class = "col-sm-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.Name, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.Name)
            </div>
        </div>        

        <div class="form-group">
            @*@Html.LabelFor(model => model.DoctorSpecialityId, new { @class = "col-sm-2 control-label" })*@
            <label class="col-sm-2 control-label"> Doctor Speciality ID</label>
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.DoctorSpecialityId, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.DoctorSpecialityId)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Charges, new { @class = "col-sm-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.Charges, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.Charges)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.PhoneNo, new { @class = "col-sm-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.PhoneNo, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.PhoneNo)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.WardId, new { @class = "col-sm-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.WardId, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.WardId)
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-primary" id="submit" />
            </div>
        </div>

最佳答案

您必须将其括在引号中才能使其成为字符串:

var JsonModel = '@Html.Raw(Json.Encode(Model))';

alert(JsonModel); // json as string

var model = JSON.parse(JsonModel); // will give json

关于javascript - 问题将 MVC 中的模型对象获取到 jQuery 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28696664/

相关文章:

javascript - 如何制作包含其他值的值数组?

javascript - 从 "this"中删除函数

javascript - Bootstrap Collapse Accordion Hover 不一致

javascript - 我如何将 php 代码包装在一个 echo 中

php - Ajax 成功响应并选择附加选项

php - 在 AJAX 调用中显示来自 PHP 的消息

javascript - 如何让 Chrome DevTools 仅重新加载选定的资源?

javascript - 如何在不使用客户端缓存的情况下下载新版本的文件?

javascript - 将参数值组合到 Jquery 中的变量名

javascript - bxSlider - 将 div 放置在 slider + 文本和背景中