опубликовать любой проверенный чекбокс - PullRequest
0 голосов
/ 19 декабря 2009

я обновил код, и это основное решение проблемы

    [AcceptVerbs(HttpVerbs.Post)]           
    public ActionResult Edit(int[] rb, int id)
    {
        List<nastava_prisustvo> nastava = new List<nastava_prisustvo>();

        string poruka = "";
        for (int i = 1; i <=rb.Length; i++)
        {
            string name = "chk" + i;
            string selID = Request.Form[name];  

            if (selID == "on")
            {
               //poruka = poruka + "Polje sa rednim brojem "+ i +" je chekirano\n";

                nastava.Add(new nastava_prisustvo
               {
                br_indexa = int.Parse(Request.Form["id_stud"+i]),
                id_predmet = id
               });
            }
        }
       // ViewData["Message"] = poruka;
        return View("show", nastava);
    }

Просмотр:

 <table class="data-table">        
    <tr> 
         <th>
            Redni br.
        </th>
        <th>
            Br. Indexa
        </th>
        <th>
            Prezime
        </th>
        <th>
            Ime
        </th>
        <th>
           <input id="check_all" type="checkbox" onclick="function" />
        </th>  
    </tr>

<% int rb = 1;%>
<% foreach (var item in Model)
   { %>

    <tr>
    <td>
            <input readonly="readonly" class="input-box" id="rb" type="text" name="rb"  value="<%= Html.Encode(rb)%>" />
        </td>

        <td>

            <input readonly="readonly" class="input-box" id="id_stud" type="text" name="id_stud"  value="<%= Html.Encode(item.id_stud)%>" />

        </td>
        <td>
            <%= Html.Encode(item.prezime)%>
        </td>
        <td>
             <%= Html.Encode(item.ime)%>
        </td>
         <td>
           <input id="check"  name="chk<%= Html.Encode(rb)%>" type="checkbox"  /> 
        </td>
    </tr>

<% rb = rb + 1;%>
<% } %>

</table>

Ответы [ 2 ]

0 голосов
/ 19 декабря 2009

, если у вас есть список флажков и вы хотите передать проверенные флажки контроллеру, все, что вам нужно сделать, это следующее:

имя каждого флажка в представлении "элементы"

Контроллер Действие:

 public ActionResult(UpdateObject updateobject)
 {
      string[] list = updateobject.items;
 }

Обновить определение объекта:

 public class UpdateObject
 {
      public string[] items { get; set; }
 }
0 голосов
/ 19 декабря 2009

Вот пример, демонстрирующий, как передать значение флажка в контроллер.

Вид:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
        <form action="/home/index" method="post">
        <input type="checkbox" name="cb" value="value1" />
        <input type="checkbox" name="cb" value="value2" />
        <input type="submit" />
        </form>
    </p>
</asp:Content>

Контроллер:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(string cb)
    {
        ViewData["Message"] = cb;

        return View();
    }

Этот пример демонстрирует, как получить через массив.

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(string[] cb)
    {
        string result = "";
        foreach (string value in cb)
            result += value.ToString() + " ";
        ViewData["Message"] = result;

        return View();
    }


   <form action="/home/index" method="post">
    <input type="checkbox" name="cb" value="v1" />
    <input type="checkbox" name="cb" value="v2" />
    <input type="checkbox" name="cb" value="v3" />
    <input type="checkbox" name="cb" value="v4" />
    <input type="submit" />
    </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...