gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:04:06 25 4
gpt4 key购买 nike

问题:我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com