您好我正在开发一个mvc4 jquery应用程序。我有动态生成的隐藏字段,我正在为它绑定一些值,如下所示。
@foreach (var group in Model.detailsbyclientId) {
<tr>
<td> @group.clientName </td>
<td> @group.employeeId </td>
<td> @group.employeeName </td>
<td>@group.Nationality</td>
<td> @group.documentType </td>
<td scope="col">
<input type="button" class="btn btn-primary btn-cons" value="View Document" onclick="showDocumentData('@group.upld_Id');" />
</td>
<td id="Hi">@group.currentStatus</td>
<td><input type="hidden" id="Status" value="@group.currentStatus"/></td>
<td></td>
</tr>
}
在某些时候,@group.currentStatus
的值将为NotVerified。例如,如果我生成5行数据,则所有5行的值将为NotVerified。在这种情况下,我想显示一些消息,否则什么都不显示。因此,只要数据的所有行都保持相同的值,那么我想显示一条消息。这是我的jquery函数,我使用了以下逻辑。
var list = new Array();
$('input[type=hidden]').each(function (i, item) {
list.push($(item).val());
if(list[i]==list[i+1]) {
fun_toastr_notify('success', 'Please verify the document');
} else {
}
});
我无法比较每一行数据。如果所有值都相同,那么我只想显示一次烤箱信息。我应该在这里使用什么逻辑?提前谢谢。
我现在尝试如下。
for(var i=0;i<list.length;i++) {
if(list[i]==list[i+1]) {
fun_toastr_notify('success', 'Please verify the documents');
}
}
现在我的问题是烤面包机信息会显示多次。如果所有元素都相同,我只想显示一次。
答案 0 :(得分:0)
您可能需要考虑将此逻辑放在生成viewmodel的代码中,并输出一个标志来显示消息,而不是在渲染视图时执行此操作。
这极大地简化了您的逻辑。一个例子:
public class YourModel {
public List<ClientDetails> detailsbyclientId {get;set;}
public bool AllClientsUnverified { get { return detailsbyclientId.All(client => client.currentStatus == "Unverified"); } }
}
然后在您的视图中(在客户端<script>
阻止内)
if (@Model.AllClientsUnverified) {
fun_toastr_notify('success', 'Please verify the documents');
}