javascript - 如何将不属于模型一部分的 div 值传递给后端 Controller 方法

标签 javascript jquery .net asp.net-mvc razor

问题:我想在 UI 中有一个 div,并且我想通过 JQuery 向其中呈现一些值,当我提交我应该能够在后端中访问它。

查看:

 @model ScheduleAptMV
        using (Html.BeginForm())
        {
           ////// I want a div here /////
            @Html.LabelFor(model => model.FirstName })
            @Html.EditorFor(model => model.FirstName)
            <input type="submit" value="Make Appointment"/>
        }
    }

型号:

public class ScheduleAptMV
{
    public string FirstName {get; set;}
}

Controller :

    [HttpPost]
    public ActionResult SaveDelayedPayment(ScheduleAptMV data)
    {
         // I want to be able to access the Div text too
    }

部分解决方案 1:

我添加了一个div

  <div id="totalAmount"></div>

使用 Jquery 我添加了类似的内容

$("#totalAmount").text("HelloFoo");

但我的问题是它与模型无关,所以如何将它发送到后端。

部分解决方案 2:

我可以在我的模型中创建一个属性,它将表示该 div 内容,以便它获得强绑定(bind)。该值仅用于显示用户应该 不允许编辑它,只能由 Jquery 代码呈现。我可以使用

 @Html.DisplayFor()

如下所示:

新模型:

public class ScheduleAptMV
{
    public string FirstName {get; set;}
    public decimal totalAmount{get; set;}
}

新 View :

<span class="myClass">
    @Html.DisplayFor(model => model.totalAmount)
</span>

问题:但是现在如何使用Jquery呈现此属性。除了 DisplayFor 之外,我还需要使用其他东西吗?

编辑:这是 DisplayFor 目前的渲染方式。

  <span class="myClass">
    0.00
        </span> 

问题:如果我遵循方案 2,那么如何将类附加到 DisplayFor 元素。

最佳答案

解决方案1

将您的操作签名更改为

public ActionResult SaveDelayedPayment(ScheduleAptMV data, int totalAmount)

但是它必须是 POSTable 实体,例如文本框,而不是 div。因此添加一个隐藏输入:

<input type='hidden' name='totalAmount' id='totalAmount'/>
<div id='totalAmountDisplay'></div>

并进行相应设置:

 $("#totalAmountDisplay").text("1024");
 $("#totalAmount").val(1024);
<小时/>

解决方案2

与解决方案 1 类似,您只需要一个隐藏的输入,以便可以发布:

@Html.HiddenFor(m => m.totalAmount)

确保在 <form> 范围内并且会自动绑定(bind)。使用 .DisplayFor 添加显示或者您喜欢的其他方式和 jquery 进行更新(如果需要),与上面类似。

关于javascript - 如何将不属于模型一部分的 div 值传递给后端 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49883224/

相关文章:

javascript - React Js 将 bool 值传递回父状态

javascript - 使用 jQuery 从 JSON 数据中获取值

php - 如何在可选列表中查看实时搜索结果?

asp.net - Javascript结果生成Jquery CRUD ajax操作

c# - 当我更改 DropDownList 上的选择时,为什么事件未触发?

javascript - 我需要从 javascript 读取一个文本文件

javascript - 多个选择器似乎不起作用

php - 如何在Jquery中隐藏/显示多个对象?

.net - 根源是什么?

c# - ASP.NET MVC 多选下拉菜单