c# - 如何使用@Ko.Html.Button 将模型属性值发送到 K-MVC 中的 Controller 方法

标签 c# asp.net-mvc razor knockout.js knockout-mvc

我正在尝试将 StockDate 的值发送到 Controller 方法。我越来越空了。 http://knockoutmvc.com/ParametersToServer

按照上面的链接,如果我像下面那样传递静态值。我可以获得值,但是当我使用 Model.Property 时,我总是得到 Null。

@ko.Html.Button("Inc 3", "Increment", "ParametersToServer", new { value = 3 })

代码如下..

查看代码-

    @using PerpetuumSoft.Knockout
@model OpManWeb.ViewModel.Inventory.TransactionHistory

@{
    var ko = Html.CreateKnockoutContext();
}
@{
    ViewBag.Title = "Add Stock";
}


<script src="~/Scripts/perpetuum.knockout.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

@using (ko.Html.Form("SaveStock", "Inventory"))
{
    <div class="row">
        <div class="col-md-3 col-lg-3 clmargin">
                <div class="form-group  col-md-4 zeropadding div2adjustments">
                    @Html.LabelFor(m => m.StockDate, new { @class = "fieldtext" })
                </div>
                <div class="col-md-8 div2adjustments">
                    @ko.Html.TextBox(m => m.StockDate, new { @class = "form-control input-sm fieldtextinput ", 
                @id="stockdatepicker" })
                </div>
            </div>
    </div>

     @ko.Html.Button("Cancel", "sample1", "Inventory", new { value = Model.StockDate}, new { @class = "btn btn- primary maxheightbtn col-md-12", @id = "btn" })
}

模型代码-

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace OpManWeb.ViewModel.Inventory
{
    public class TransactionHistory
    {
        [DisplayName("Stock Date")] 
        public string StockDate
        {
            get;
            set;
        }
    }
}

Controller 代码-

   public ActionResult sample1(string value)
{
    return Json(value);        
}

对于 Controller 中的字符串值,我总是得到 null .. 任何人都可以面对这样的问题..? 帮助..!! 提前致谢..!!

最佳答案

您只能使用@ko.Html.Button 发送回额外的static 参数。

但是,您可以通过向 Controller 操作添加 model 参数来获取整个客户端模型对象(这始终由 K-MVC 发送)。

因此,您可以将 Controller 操作修改为:

public ActionResult sample1(TransactionHistory model)
{
    return Json(model.StockDate);        
}

关于c# - 如何使用@Ko.Html.Button 将模型属性值发送到 K-MVC 中的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28742465/

相关文章:

C# - 强制矩形具有固定大小/比例

c# - 如何使用C#删除word中当前选中的表格行?

c# - Foreach thread.join,没有按预期工作,如何解决?

asp.net-mvc - 为什么我的 Crystal Report 和 Viewer 在 MVC 应用程序的 Web 表单上不可见?

c# - 完成异步任务后更新 Maui Blazor 中的绑定(bind)值的方法是什么?

c# - 在 C# 中加载 C++ dll 时,CLR 是否自动加载 C++ 文件的依赖项?

c# - AsyncTimeout Action 过滤器有什么意义?

asp.net-mvc - 使用基于 SQL 的本地化提供程序时,如何本地化/国际化 MVC Controller ?

c# - 如何在 ASP.NET MVC 3 中将 Razor View 呈现为字符串?

asp.net-mvc - 如何在 Rotativa PDF 中的页眉或页脚上设置图像