为<input />标记内的ViewBag varible赋值

时间:2016-01-12 10:11:18

标签: c# asp.net-mvc razor

我有包含分页的cshtml视图页面

此页面的视图

enter image description here

一旦我点击下面的任何一个号码(1到10),我应该能够将该号码传递给该表格的POST方法

这是该分页的相关cshtml代码段

   @if (Model.Pager.EndPage > 1)
                    {
                        <ul class="pagination">
                        @for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++)
                        {
                                <li class="@(page == Model.Pager.CurrentPage ? "active" : "")">
                                   <input type="submit" value=@page class="btn btn-default" ViewBag.pagenumber=@page/>
                                </li>
                        }
                       </ul>
                    }

然后我尝试传递这个值

@using (Html.BeginForm("method_name", "controller", new { pagenumber = ViewBag.pagenumber} , FormMethod.Post))
{

pagenumber每次都变为空,这样

修改

    [HttpGet]
    public ActionResult method_name(int? page,string Product_ID)
    {
     ........
    }

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult method_name(AddNewProduct product, string pagenumber)
    {
    .....
    return RedirectToAction("method_name", "controller", new { page = pagenumber});
    }

3 个答案:

答案 0 :(得分:0)

发生重定向时,ViewBag值中的

变为null。 尝试使用TempData

    $(function () {
 // $("div#FileIDUpload").dropzone({ url: "xUpload.xsp" });
   var myDropzone = new Dropzone("div#FileIDUpload", { 
    paramName: "uploadedFile", // The name that will be used to transfer the file
   url: "xUpload.xsp",
   clickable:true,
      uploadMultiple:false,
      maxFilesize: 2 // MB

   });


});

答案 1 :(得分:0)

为每个输入字段分配名称标签。这样你就可以使用FormCollection在控制器中检索值,而不需要new { pagenumber = ViewBag.pagenumber}

[HttpPost]
[ValidateInput(false)]
public ActionResult method_name(FormCollection collection){
  var inputValue = collection.GetValue("name").AttemptedValue;
  return RedirectToAction("method_name", "controller", inputValue);
}

答案 2 :(得分:0)

你可以这样做

在寻呼机按钮中添加类pagerBtn

<input type="submit" value=@page class="btn btn-default pagerBtn"/>

形式创建隐藏的输入字段
     @using (Html.BeginForm("method_name", "controller" , FormMethod.Post))
{
      //Make sure the action parameter same as name of input field
    <input type="hidden" name="pagenumber" id="hiddenInput" />
}

编写jquery以获取页码

$(document).ready(function(){
$(".pagerBtn").on("click",function(e){
   var pageClicked = e.target.value;//Get clicked button page number from attribute value.
 $("#hiddenInput").val(pageClicked);//insert clicked value in hidden filed input with name same as controller parameter taking this value.

});
});