如何使用@Ko.Html.Button 将模型属性值发送到 K-MVC 中的控制器方法
Posted
技术标签:
【中文标题】如何使用@Ko.Html.Button 将模型属性值发送到 K-MVC 中的控制器方法【英文标题】:How to send model property value to controller method in K-MVC using @Ko.Html.Button 【发布时间】:2015-04-28 19:56:19 【问题描述】:我正在尝试将 StockDate 的值发送到控制器方法。我得到空值。 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;
控制器代码-
public ActionResult sample1(string value)
return Json(value);
对于控制器中的字符串值,我总是得到空值。 任何人都可以遇到这样的问题..? 帮助..!! 提前谢谢..!!
【问题讨论】:
您是否尝试在控制器中访问model.StockDate
?
是的,我的控制器争论中的字符串值是 null ..
那是因为您没有将带有键 value
的键:值对传递给控制器。
我们怎样才能做到这一点...?你能写出这个问题的答案吗?
我知道我们可以实现,但我不想使用视图模型。我想使用传递给@ko.Html.Button..和控制器内部的字符串值的参数值来实现这一点
【参考方案1】:
您只能使用@ko.Html.Button
发回额外的静态参数。
但是,您可以通过向控制器操作添加model
参数来获取整个客户端模型对象(始终由 K-MVC 发送)。
所以你可以通过修改你的控制器操作来获得当前的model.StockDate
:
public ActionResult sample1(TransactionHistory model)
return Json(model.StockDate);
【讨论】:
以上是关于如何使用@Ko.Html.Button 将模型属性值发送到 K-MVC 中的控制器方法的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Eloquent - 如何将范围查询内的计算值作为模型列或集合属性返回
如何使用 Knockout Mapping 将一个属性映射到另一个属性?
使用 Spring WebFlux 路由器功能时如何获取模型属性?