2013-08-08 9 views
10

Tôi phải chuyển các giá trị được ẩn vào hành động của bộ điều khiển. Vì vậy, tôi đã thử theo cách sau, nhưng tôi nhận được giá trị null.Cách sử dụng giá trị trường ẩn từ dạng xem đến bộ điều khiển trong asp.net mvc 3

Tôi đã thử cả hai phương pháp tức là FormCollection và khái niệm viewmodel

khiển

public ActionResult MapIcon() 
{ 
    Hidden hd = new Hidden(); 
    return View(hd); 
} 

[HttpPost] 
public ActionResult MapIcon(Hidden hidden) 
{ 
    var value=hidden.hiddevalue;//null 
    FormCollection col = new FormCollection(); 
    var value = col["hidden1"]; 
    // string value = mycontroler.ControlName; 

    return View(hidden); 
} 

Xem

@model SVGImageUpload.Models.Hidden 
Razor view:@using (Html.BeginForm(new { id = "postform" })) 
{ 
    <input type="hidden" id="" value="7" name="hidden1" /> 
    <input type="hidden" id="" value="7" name="hidden2"/> 

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

ViewModel

public class Hidden 
{ 
    public string hiddevalue { get; set; } 
} 
+0

@mattytommo tôi không lấy giá trị từ cơ sở dữ liệu vì vậy không có lớp mô hình. Tôi chỉ xem mô hình. Quan tâm chính của tôi là cách đăng giá trị của trường nhập tức là 7 trong ví dụ của tôi. – user2663526

Trả lời

8

Dường như với tôi như bạn đang cố gắng để có được nhiều giá trị vào bộ điều khiển POST. Trong trường hợp đó, và bằng bài kiểm tra của bạn, giá trị từ đầu vào bị ẩn là đủ. Trong trường hợp đó, bạn có thể thiết lập điều khiển của bạn như vậy:

public ActionResult Index() 
{ 
    Hidden hd = new Hidden(); 
    return View(hd); 
} 

[HttpPost] 
public ActionResult Index(IEnumerable<string> hiddens) 
{ 
    foreach (var item in hiddens) 
    { 
     //do whatter with item 
    } 
    return View(new Hidden()); 
} 

và như đối với quan điểm của bạn, đơn giản thay đổi nó để liên kết với cùng tên "hiddens" như vậy:

@using (Html.BeginForm(new { id = "postform" })) 
{ 
    <input type="hidden" value="7" name="hiddens" /> 
    <input type="hidden" value="2" name="hiddens" /> 

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

Hope điều này phục vụ những gì bạn đang mong chờ.

9

Hãy thử điều này, Trong Razor view:

@using (Html.BeginForm(new { id = "postform" })) 
{ 
     @Html.HiddenFor(m=>m.hiddevalue) 
    <input type="submit" value="Match"/> 
} 
+1

làm thế nào tôi wil nhận được các giá trị của hiddenvalue .AS tôi không dùng các giá trị này từ cơ sở dữ liệu. – user2663526

+0

khi bạn gửi biểu mẫu, Trình mô phỏng MVC sẽ tự động nhận giá trị từ "@ Html.HiddenFor" và gửi nó đến phương thức hành động. Vì vậy, nó sẽ đúc giá trị trong "@ Html.HiddenFor" để loại đối tượng ẩn. Điều này xảy ra bởi vì bạn đang gõ mạnh khung nhìn viewmodel. – tranceporter

3

nếu giá trị ẩn của bạn là static.Than thử này

Xem

@using (Html.BeginForm(new { id = "postform" })) 
{ 


@Html.HiddenFor(m=>m.hiddevalue) 
    <input type="hidden" id="" value="7" name="hidden1" /> 
    <input type="hidden" id="" value="7" name="hidden2"/> 

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

khiển

[HttpPost] 
public ActionResult MapIcon(Hidden hidden, string hidden1, string hidden2) 
{ 
    var hiddenvalue = hidden.hiddevalue; 
    var hiddenvalue1 = hidden1; 
    var hiddenvalue2 = hidden2; 
    var value=hidden.hiddevalue;//null 
    FormCollection col = new FormCollection(); 
    var value = col["hidden1"]; 
    // string value = mycontroler.ControlName; 

    return View(hidden); 
} 

Script

$(document).ready(function() { 

$('#hiddevalue').val("Jaimin"); 

}); 
+1

ý tưởng của bạn là tốt nhưng vấn đề của tôi là một chút khác nhau – user2663526

+0

ý tưởng của bạn là tốt nhưng vấn đề của tôi là một chút khác nhau cho tôi giải thích vấn đề là như sau Làm thế nào tôi có thể hiển thị những hình ảnh được gắn vào biểu mẫu động. tức là tôi có thể nối thêm đầu vào bị ẩn, những người có thuộc tính id hình ảnh, giá trị, vv để tạo thành bằng cách sử dụng các phương thức chắp thêm jquery. – user2663526

+0

bạn không giải thích điều đó trong câu hỏi của bạn. – Jaimin