变量无法在页面上显示

时间:2013-11-19 14:03:29

标签: c# asp.net asp.net-mvc razor

我无法在我的网页上获取WebGrid.SortColumn字符串。当我调试我的Razor页面时,值的设置如下图所示。因此,在View发送到我的浏览器之前,这个变量发生了一些变化,所以它似乎是空的。我需要在隐藏字段中打印此属性以添加排序功能的箭头,但是我能想到的所有选项都无法在页面中获取值。

此代码用于局部视图_Test.csHtml

string sortCol = "testing the sortcolumn " + grid.SortColumn;
<p>Here is sortcolumn value :: @sortCol</p> 
//displays --> <p>Here is sortcolumn value :: </p>

@Html.Hidden("dir", grid.SortDirection); 
//displays --> <input id="dir" type="hidden" value="Ascending" name="dir">
@Html.Hidden("col", grid.SortColumn); 
// displays --> <input id="col" type="hidden" value="" name="col">

图像

enter image description here

先谢谢,希望一切都清楚,如果不是,我会进一步解释自己

修改

line ::

这是sortcolumn值:: @sortCol

output ::

这是sortcolumn值::测试sortcolumn

哪个更奇怪,因为变量填充了正确的数据,但只是没有打印属性....

编辑2(使用viewmodel)

public class InvoicesViewModel : BaseViewModel
{
    public InvoicesViewModel(Controller cntrl)
        : base(cntrl)
    {
    }

    public InvoicesViewModel() { }
    public Double subtotal { get; set; }
    public WebGrid grid { get; set; }
    public string sortColumn { get; set; }
    public string help { get; set; }
    public IOrderedEnumerable<TtCompanyInvoicelist> invList { get; set; }
}


    public ActionResult Index()
    {
        vm.grid = new WebGrid(vm.invList, rowsPerPage: 10, ajaxUpdateContainerId: "grid", ajaxUpdateCallback: "webGridUpdated");
        vm.sortColumn = vm.grid.SortColumn;
        return View(vm);
    }

enter image description here

enter image description here

在控制器中,您可以看到对象的值是正确的。在视图中,您可以看到对象仍然正确填充。但输出保持不变,隐藏输入的值为空。

0 个答案:

没有答案