MVC - 无需更改页面的调用功能

时间:2017-06-28 09:55:03

标签: forms post model-view-controller actioncontroller

首先,我要说:我是MVC的新手,英语不是我的第一语言,所以我会尽力解释自己。

在我的索引中,3个选择标签,当所有3个具有不同的索引时,则0加载部分视图。部分视图是一组包含输入选择标记的表,由模型传递的数据填充。 用户应该能够更改标签中的值并按“保存”按钮提交更改(将由存储过程保存),而无需重新加载任何内容。

当我尝试在没有“更改页面”的情况下执行此操作时出现问题。

我只想将“保存”按钮与传递数据的控制器上的方法连接起来。

控制器功能

    public void FUNCTIONCALLED(MODEL m)
    {    
        using (DBEntities data = new DBEntities ())
        {             
            data.STOREDPROCEDURE();
        }

    }

partialView.cshtml

@using (Html.BeginForm("FUNCTIONCALLED", "CONTROLLER"))
{   
    <div class="table-head">
        <table>
            <!-- input & select stuff here -->
        </table>
    </div>
    <div style="clear: both;">
        <button type="submit" class="btn btn-primary">Salva</button> 
    </div>
}

感谢您的帮助。

编辑:如果我删除表单并使用ajax调用,我会收到错误:String too long

1 个答案:

答案 0 :(得分:1)

输入类型提交将表单发送到服务器并重新加载页面。

你必须使用像这样的ajax方法:

function Save()
{
    $.ajax({
        url: "@Url.Action("MyMethode", "MyController")",
        type: "POST",
        contentType: "application/json",
        data: JSON.stringify({ MyMethodeParam : $("#MyInputID").val() })
        }).done(function (data) {
            if (data == true)
            {
                alert("Save success");
            }
            else alert("Save error");
        }).fail(function () {
            alect("Ajax Fail");
        });
}

删除您的表单,然后点击按钮即可使用

<button type="button" class="btn btn-primary" onClick="save();">Save</button>