【发布时间】:2016-12-18 03:31:16
【问题描述】:
希望有人能帮助我,这可能是一个简单的问题,但让我很沮丧,因为没有解决办法,
我想通过模型绑定将值从隐藏字段传递给控制器, 无论我使用什么方法,只需通过模型将值从视图传递到控制器就可以为我工作,
这是我的滑块范围
<label for="amount">دامنه قیمت:</label>
<div id="connect" class="noUi-target noUi-ltr noUi-horizontal noUi-background">
</div>
这是隐藏字段,
<input type="hidden" name="MinPrice" value="@Model.MinPrice" id="MinPrice" />
<input type="hidden" name="MaxPrice" value="@Model.MaxPrice" id="MaxPrice" />
< script >
var connectSlider = document.getElementById('connect');
noUiSlider.create(connectSlider, {
start: [40000, 800000],
connect: true,
range: {
'min': 0,
'max': 2000000
}
}); < /script>
<script>
var connectBar = document.createElement('div'),
connectBase = connectSlider.querySelector('.noUi-base');
/ / Give the bar a class
for styling and add it to the slider.
connectBar.className += 'connect';
connectBase.appendChild(connectBar);
connectSlider.noUiSlider.on('update', function(values, handle, a, b, handlePositions) {
var offset = handlePositions[handle];
// Right offset is 100% - left offset
if (handle === 1) {
offset = 100 - offset;
}
// Pick left for the first handle, right for the second.
connectBar.style[handle ? 'right' : 'left'] = offset + '%';
}); < /script>
<script>
var valueInput = document.getElementById('MinPrice'),
valueSpan = document.getElementById('MaxPrice');
/ / When the slider value changes, update the input and span
connectSlider.noUiSlider.on('update', function(values, handle) {
if (handle) {
valueInput.value = values[handle];
} else {
valueSpan.innerHTML = values[handle];
}
});
// When the input changes, set the slider value
valueInput.addEventListener('change', function() {
connectSlider.noUiSlider.set([null, this.value]);
});
< /script>
这是我的填充隐藏字段的JS,这两个字段填充正确,但不要通过模型向控制器发送数据,
谢谢大家,
更新
这是我的模型:
public class SearchModel
{
public string Devision { get; set; }
public string Gender { get; set; }
public int? MinPrice { get; set; }
public int? MaxPrice { get; set; }
public string Brand { get; set; }
public string Sport { get; set; }
public string Size { get; set; }
public string ProductGroup { get; set; }
public List<tblSiteItem> Result { get; set; }
public List<tblSiteItem> Sales { get; set; }
public List<string> Devisions { get; set; }
public List<string> Genders { get; set; }
public List<string> Brands { get; set; }
public List<string> Sports { get; set; }
public List<string> Sizes { get; set; }
public List<string> ProductGroups { get; set; }
public List<tblSiteCart> CartItems { get; set; }
public int PageNo { get; set; }
public int Barcode { get; set; }
}
正如我所说,该值已正确填充,因此我不需要代码来纠正它,只是不要将 hdnValue 绑定到我模型中的字段。 我的意思是 MinPrice 和 MaxPrice。
已编辑 可悲的是,我不允许上传图片,如果我一切都很明显, 无论如何,我解释一下细节:
当我改变 slideBar 时,我的 JS 触发并且值改变,
当我点击搜索按钮时,我模型中的所有字段都是字段,除了这两个字段,我的意思是 MinPrice 和 MaxPrice
结果显示一个空白页面,我的 Js 再次被触发然后返回默认值,
在最后一次尝试中,我将隐藏字段更改为 type="text" 并看到当我更改滑动条时,值在我的文本框中,但在触摸搜索按钮时未绑定到我的视图模型。
我确定我的视图模型有问题,但我怎么能理解不正确的地方:(请查看我的代码
【问题讨论】:
标签: javascript asp.net-mvc model-binding hidden-field nouislider