作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:我想在 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/
我是一名优秀的程序员,十分优秀!