The parameters dictionary contains a null entry for parameter

Posted by ognjenb on Stack Overflow See other posts from Stack Overflow or by ognjenb
Published on 2010-05-19T08:04:01Z Indexed on 2010/05/19 8:10 UTC
Read the original article Hit count: 1021

Filed under:
<%using (Html.BeginForm("OrderDevice", "ImportXML", FormMethod.Post))
{ %>

<table id="OrderDevices" class="data-table">
    <tr>

        <th>
            DeviceId
        </th>
        <th>
            Id
        </th>
        <th>
            OrderId
        </th>
    </tr>

<% foreach (var item in Model) { %>

    <tr>

        <td>
            <input readonly="readonly" class="" id="DeviceId" type="text" 
                name="<%= Html.Encode(item.DeviceId) %>"  
                value="<%= Html.Encode(item.DeviceId) %>" style="width: 61px" />
        </td>
        <td>
            <input readonly="readonly" class="" id="c" type="text" 
                name= "<%= Html.Encode(item.Id) %>"  value="
    <%= Html.Encode(item.Id) %>" 
                style="width: 50px" />      
        </td>
        <td>
            <input readonly="readonly" class="" id="OrderId" type="text" 
                name= " <%= Html.Encode(item.OrderId) %>"  
                value="<%= Html.Encode(item.OrderId) %> " style="width: 49px" /> 
        </td>
    </tr>

<% } %>

</table>

<input type="submit" value="Create"/>
<%} %>

My controller action:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult OrderDevice(int id)
    {   
        try
        {
            // TODO: Add insert logic here        
            orderdevice ord = new orderdevice();
            ord.Id = System.Convert.ToInt32(Request.Form["Id"]);
            ord.OrderId = System.Convert.ToInt32(Request.Form["OrderId"]);
            ord.DeviceId = System.Convert.ToInt32(Request.Form["DeviceId"]);

            XMLEntities.AddToorderdevice(ord);
            XMLEntities.SaveChanges();
            return RedirectToAction("Index");
        }
        catch
        {
            return View("Index");
        }
    }

When post a form I have this error: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult OrderDevice(Int32)' in 'MvcKVteam.Controllers.ImportXMLController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters

How fix it?

© Stack Overflow or respective owner

Related posts about asp.net-mvc