0

我正在尝试这样做:

  1. 创建一个模型,将其添加到会话中并将其发送到视图。
  2. 在我的视图中更改模型字段
  3. 从我的控制器上更新的会话中获取模型

问题是,当我更改文本框上的值时,我的模型永远不会更新,我确信我错过了剃须刀的一些东西,查看:

@model MvcTestApp.Models.Car

<div class="b1">

    <div class="b2">@Html.EditorFor(e => e.KM)</div>                    
    <div class="b2">@Html.EditorFor(e => e.RegistrationNumber)</div>

</div>

@Html.ActionLink("Car", "sendCar")

控制器:在 SendCar 上,我想更新模型。

namespace MvcTestApp.Controllers
{
    public class CarController : Controller
    {
        public ActionResult Show()
        {
            var model = new MvcTestApp.Models.Car()
            {
                RegistrationNumber ="12345",
                KM = "12345"
            };

            Session["temp"] = model;
            return View("Show",Session["temp"]);
        }


        public ActionResult sendCar()
        {
           return View("Show", Session["temp"]);
        }       

    }
}

模型:

namespace MvcTestApp.Models
{

    public class Car
    {

        [DataType(DataType.Text)]
        public string KM { get; set;}

        [DataType(DataType.Text)]
        public string RegistrationNumber { get; set;}

    }  
}
4

3 回答 3

0

你需要让你的 sendCar 控制器更新模型。目前,您所做的所有更改都只会在本地保留,直到您离开页面。您需要将更改后的模型发布回服务器。

看看这个例子的“处理编辑”部分,看看它是如何完成的:

Asp.net 教程

于 2012-07-23T08:35:35.877 回答
0

这样做的方法是将模型详细信息包装在带有提交功能的表单中。然后在您的 sendCar 方法中获取一个 Car 对象,模型绑定将负责设置新对象上的所有内容。

如果你想坚持这个(我认为这只是为了测试目的?)那么也许让你在你的 show 方法中返回的汽车成为一个类变量。

于 2012-07-23T08:36:59.543 回答
-1

您应该阅读有关 ASP.NET MVC 的初学者教程,它将向您解释如何将数据从表单发送到控制器,因为您似乎完全不知道如何执行此操作。

您并没有错过“某些东西”,您错过了从表单向控制器发送数据的所有内容。

于 2012-07-23T08:35:45.567 回答