首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MVC3将对象从[索引]视图传递到编辑视图

如何使用MVC3将对象从[索引]视图传递到编辑视图
EN

Stack Overflow用户
提问于 2011-11-17 21:33:25
回答 2查看 338关注 0票数 0

我已经创建了一个简单的WCF服务,它将由一个MVC3 UI进行配置。

当我从控制器调用索引页时,我希望显示配置中保存的值,该值已由服务返回。然后,用户可以选择编辑这些设置,然后将它们发送回服务。

我想在索引视图中这样做...

代码语言:javascript
复制
<div>
    @Html.ActionLink("Edit", "Edit", model)
</div>

然后像这样在控制器中使用模型...

代码语言:javascript
复制
[HttpPost]
    public ActionResult Edit( SettingsModel Config)
    {
        try
        {
            List<string> configErrors = null;

            if (ModelState.IsValid)
            {
                // Set up a channel factory to use the webHTTPBinding
                using (WebChannelFactory<IChangeService> serviceChannel = new WebChannelFactory<IChangeService>(new Uri(baseServiceUrl)))
                {
                    IChangeService channel = serviceChannel.CreateChannel();
                    configErrors = channel.SetSysConfig(Config);
                }
          }
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

但这不管用。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-17 23:10:02

在发布表单时,将收集所有输入类型字段数据并将其发送到服务器。您可以使用FireBug查看此数据。这里的关键点是,在表单中发布的数据,MVC的默认模型绑定器可以理解并将其映射到模型对象,该对象将作为输入参数传递给操作方法。

在您的示例中,模型的类型为"SettingsModel“。您必须确保正在发布的表单数据是可以映射到"SettingsModel“对象的格式。

在另一个线程中讨论的相同类型的问题:Can't figure out why model is null on postback?

查看这篇文章:NerdDinner Step 6: ViewData and ViewModel

在上面的文章中,请仔细阅读“使用ViewModel模式”一节。我的猜测是,这就是你要找的。

票数 1
EN

Stack Overflow用户

发布于 2011-11-17 21:37:31

您将需要post这些值以填充编辑操作中的SettingsModel对象。如果不想让用户看到,您可以使用隐藏的表单域来完成此操作。否则,您可能没有Edit操作的参数,并再次调用web服务来填充Settings模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8167936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档