2012-12-26 30 views
5

Tôi muốn có một đầu vào (ẩn) lĩnh vực mà các cửa hàng Id của một số đơn vị ...Input ẩn lãm Id không chính xác (Guid.Empty)

Nhưng mã này:

@Html.HiddenFor(model => model.Id) 

Kết quả trong này HTML markup:

<input id="Id" name="Id" type="hidden" value="00000000-0000-0000-0000-000000000000" /> 

Đây là kỳ lạ kể từ khi tôi chắc chắn rằng Model.Id != Guid.Empty. Tôi có thể xác nhận nó bằng cách tiêm @Model.Id vào HTML. Điều này hoạt động tốt:

<input type="hidden" id="Id" name="Id" value="@Model.Id" /> 

Tại sao Công cụ xem quyết định đặt những số 0 thay vì đúng Id?

Sửa: Tôi không thêm mã gốc vì nó là khá phức tạp nhưng đây là mẫu siêu đơn giản cho thấy hầu hết các hành vi tương tự (nó sử dụng chuỗi rỗng không Guid.Empty về giá trị đầu vào):

Xem:

@using MvcApplication4.Models 
@model Foo 

@using (Html.BeginForm()) 
{ 
    @Html.HiddenFor(model => model.Id) 
    @Model.Id 

    <input type="submit" value="ok" /> 
} 

Bộ điều khiển:

namespace MvcApplication4.Controllers 
{ 
    public class HomeController : Controller 
    { 
     [HttpGet] 
     public ActionResult Index() 
     { 
      Foo foo = new Foo(); 
      return View(foo); 
     } 

     [HttpPost] 
     public ActionResult Index(Foo foo) 
     { 
      foo.Id = Guid.NewGuid(); 
      return View(foo); 
     } 
    } 
} 

mẫu:

using System; 

namespace MvcApplication4.Models 
{ 
    public class Foo 
    { 
     public Guid? Id { get; set; } 
    } 
} 

Sự cố có thể hiển thị sau khi đăng hành động.

+0

Tôi có thể xem mô hình của bạn không? –

+0

Và mã hành động của bộ điều khiển gọi chế độ xem – MarkG

+0

Không có gì thú vị trong phương thức mô hình hoặc hành động ngoại trừ Id đó là nullable Guid. – user1068352

Trả lời

5

và điều đó giải thích mọi thứ. Bạn đang gặp sự cố tương tự như một người khác trong số this question. Vui lòng xem câu trả lời được chấp nhận và các nhận xét cho nó vì nó có liên quan đến vấn đề của bạn.

Các vấn đề liên quan