如何使用Jquery和Controller清除模型的属性值?

时间:2018-09-16 00:17:14

标签: javascript c# ajax asp.net-mvc

我有两个级联的下拉菜单 第一个下拉菜单有2个值:(负数和正数) 因此,如果我从第一个下拉菜单中选择了负数,则第二个下拉菜单应显示另外3个值,如果我选择了正向,则第二个下拉菜单应具有2个值。 此业务逻辑运行正常。

但是当我选择Negative并从第二个下拉列表中选择一个值,然后更改我的第一个下拉列表的值时,我希望第二个下拉列表的Model属性应该变得清晰,因为它仍然包含先前选择的值

为此,我对控制器进行了ajax调用,它将处理所有问题

<script language="javascript" type="text/javascript">
function GetValue(id) {
    if ($("#firstDropdownID option:selected").index() == 1) {
        $.ajax({
            url: '@Url.Action("ResetDropdownValues", "ControllerName")',
            data: '{ id: ' + id + '}',
            contentType: "application/json; charset=utf-8",
            cache: false,
            type: "POST",
            success: function (data) {
                 alert("error : " + reponse);
              },
            error: function(reponse) {
                 alert("error : " + reponse);
            }
        });
    }</script>

这是我要访问当前模型以清除其属性的控制器

 [HttpPost]
    public ActionResult ResetDropdownValues(int id)
    {
        if (id == 1)
        {
            //Access Current Model state to clear value for a particular property
        }


        return null;
    }

这是更改返回JSonResult的第二个下拉列表的值的代码

if (!$("#firstDropdownID option:selected").index() == 0) {
        var procemessage = "<option value='0'> Please wait...</option>";
        $("#secondDropdownID ").html(procemessage).show();
        var url = '@Url.Action("GetSecondDropdownValue", "ControllerName")';

        $.ajax({
            url: url,
            data: '{ id: ' + id + '}',
            contentType: "application/json; charset=utf-8",
            cache: false,
            type: "POST",
            success: function(data) {
                var markup = "<option value='0'>Select Type of Issue</option>";
                for (var x = 0; x < data.length; x++) {
                    markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
                }
                $("#secondDropdownID ").html(markup).show();
            },
            error: function(reponse) {
                // alert("error : " + reponse);
            }
        });

    }

以及返回JsonResult的控制器

 [HttpPost]
    public ActionResult GetSecondDropdownValue(int id)
    {
        List<ExperienceType> obj_ToIssue = new List<ExperienceType>();
        if (id == 1)
        {
            obj_ToIssue = GetValue().Where(m => m.Id != 0).ToList();
        }
        else
        {
            obj_ToIssue = GetValue().ToList();
        }

        SelectList obj= new SelectList(obj, "Id", "Name");
        return Json(obj);
    }

0 个答案:

没有答案