编辑视图的Viewmodel绑定

时间:2015-06-15 12:01:33

标签: c# entity-framework mvvm

在编辑视图的“GET”部分遇到一些问题,并且无法在网上找到任何内容。到目前为止,这是我的POST部分:

Fatal error: Call to undefined function _() in C:\wamp\www\Dropbox   \Dropbox\www\Alter\addAnnonce.php on line 62

我只使用EntityFramework完成此操作并让它支持所有内容,因此这是第一次使用Viewmodels进行个人化。

有关我的POST操作是否正确的任何帮助,以及有关GET操作的一些指导将不胜感激:)

2 个答案:

答案 0 :(得分:1)

我相信你与POST走在正确的轨道上。 GET更加简单:

public ActionResult Create()
{
    return View(new ContactsCreateViewModel() { ... your initial settings, may be contained within constructor of view model directly ... });
}

GET请求请求服务器提供由用户填写的空表单,填写的数据通过POST发回,并在您提供的功能中处理。

修改

如果您正在谈论编辑,那么它与另外一步相似:

public ActionResult Edit(int id)
{
    var data_model = TheContactContext.tblContacts.Get(id); // get model probably from database
    var view_model = new ContactsCreateViewModel() {
        Company = data_model.Company,
        ...
    }; // copy all data into view model

    return View(view_model); // and display view
}

答案 1 :(得分:0)

首次加载页面时,它会发送GET请求并从Db中检索包含项目集合的模型。在您更新其中一些项目后,您的应用会发送包含json数据的发布请求(最有可能使用Ajax)。您可以使用控制器方法更新数据库,现在可以刷新页面数据了。最简单的方法是使用ajax。

$.ajax({
    url: "http://" + location.host + "/CTRL/Action",
    type: "POST",
    data: yourdata,
}).done(function (html) {
   location.reload(); (or other method to update UI)
}).fail(function (err) {
    alert(err.statusText);
});

它是客户端的。服务器端就像:

    lock (obj)
    {
        try
        {
            update database here...                   
        }
        catch(Exception ex)
        {
            return new HttpStatusCodeResult(System.Net.HttpStatusCode.ServiceUnavailable, ex.Message);                                               
        }                

        return new HttpStatusCodeResult(System.Net.HttpStatusCode.OK, "Update completed");                
    }