c# - WebMatrix 填充属性和 JavaScript 读取属性未产生预期结果

标签 c# javascript jquery razor webmatrix

我在使用以下代码时遇到问题:

CSHTML 文件中的部分:

                        @if(errorMessage != "")
                        {
                            err="err";
                        }
                        else
                        {
                            err="";
                        }
                        @if(errorMessage == "")
                        {
                            foreach(var row in db.Query(stringCompiler, EntryID, POIName, DateLastModified, Gender, Race, Height, Weight, HairColor, EyeColor, DOB, Age, SS, DL, DOC, VehicleTag, FBI, Officer, HomePhone, CellPhone, CellPhone2, CellPhone3, POICautions, WorkPhone, WeightedAggregate, Address, AdditionalDescriptors, Aliases, SourceOfInformation, AddressInformation, KnownAssociates, VehicleDescription, Comments, SummarizedIncidents, AllCellPhones, AllPhones, betDOB1, betDOB2, betDLM1, betDLM2, betAge1, betAge2, POILastName, SearchAll))
                            {
                                <div class="searchResult">
                                    <table style="background-color: #beebeb;">
                                        <tr>
                                            <td class="entryLabel">ENTRY ID</td>
                                            <td class="entryLabel">FIRST NAME</td>
                                            <td class="entryLabel">LAST NAME</td>
                                            <td class="entryLabel">DATE LAST MODIFIED</td>
                                            <td class="entryLabel">DOB</td>
                                            <td class="entryLabel">AGE</td>
                                            <td class="entryLabel">ADDRESS</td>
                                            <td class="entryLabel">VEHICLE TAG#</td>
                                            <td class="entryLabel">OFFICER</td>
                                            <td class="entryLabel">HOME PHONE</td>
                                            <td class="entryLabel">CELL PHONE</td>
                                            <td class="entryLabel">WEIGHTED AGGREGATE</td>
                                        </tr>
                                        <tr>
                                            <td class="entry">@row.EntryID</td>
                                            <td class="entry">@row.POIName</td>
                                            <td class="entry">@row.POILastName</td>
                                            <td class="entry">@row.DateLastModified</td>
                                            <td class="entry">@row.DOB</td>
                                            <td class="entry">@row.Age</td>
                                            <td class="entry">@row.Address</td>
                                            <td class="entry">@row.VehicleTag</td>
                                            <td class="entry">@row.Officer</td>
                                            <td class="entry">@row.HomePhone</td>
                                            <td class="entry">@row.CellPhone</td>
                                            <td class="entry">@row.WeightedAggregate</td>
                                        </tr>
                                        <tr>
                                            <td colspan="13" style="text-align: center;"><form method="post" action="/ComputeLookupToVAndE.cshtml"><input type="hidden"  name="veEntryID" hidden="hidden" readonly="true" value="@row.EntryID" /><br/><input type="submit" value="View & Edit" class="btn3" style="height: 40px; width: 100px;" /><br/><br/></form></td>
                                        </tr>
                                    </table>
                                </div><br/>
                                ResultCount += 1;
                            }
                            <input type="hidden" id="ResultCount" value="@ResultCount" />
                            <input id="err" type="hidden" value='@err' />
                        }

JavaScript 文件中的部分:

$(document).ready(function () {
if ($("#err").val() == "err")
{
    $("#searchForm").attr('action', "/LookUpEntry.cshtml#top");
}
else
{
    $("#searchForm").attr('action', "/LookUpEntry.cshtml#searchList");
}
});

显然,如果变量 errorMessage 中存储了任何错误消息,我会在 C# 渲染页面之前尝试将隐藏输入元素的值更改为“err”。

一旦完成,JavaScript 应该读取这个值,然后如果它是“err”,则更改表单的操作属性以附加“#top”(对于命名 anchor ,因此页面上的加载位置会根据是否更改)有错误消息或要查看的结果),否则应更改表单的操作属性(仍然通过 JavaScript)以附加 #searchList)。

知道为什么 JavaScript 和 C# 不能很好地协同工作吗?我得到的错误是随意的(就像它第一次不起作用,然后根本不起作用),无论如何,根据下面的代码,它仍然永远不会去(#top),尽管在尝试一些事情时在这个确切的编码之前(我不记得它们到底是什么),如果出现错误,有时(尽管不是第一次)会转到顶部。

为什么 jQuery 没有完成它的工作?看来这对我应该有用......

有什么想法吗?

感谢您的帮助

最佳答案

嗯,我想我已经弄清楚了,并且我认为它确实有道理:

它确实改变了它应该的值,但是 Action (表单[或者更确切地说,我看待它的方式]如何处理发布的数据)已经被设置为无论结果如何它都会去的地方当前搜索的。简而言之:落后了一步。当我单击搜索并生成错误消息时,它将按预期重写操作,但当然,它只会在下一次搜索时生效,而不是在当前搜索时生效,因为在上一次提交时已经确定了。

我的代码有什么问题吗?语法上没有什么问题,方法论(逻辑)是错误的。

关于c# - WebMatrix 填充属性和 JavaScript 读取属性未产生预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963039/

相关文章:

jquery - 如何使用 jQuery 克隆后获取选定的值?

javascript - 如何在文档标题上添加 (1) 文本通知

c# - 保存时不更新 RichTextBox 内容

c# - 在 TextBox 中使用 TextWraping,在 Grid 中用于 WP7 中的 ListBox

c# - .Net 中的 LDAP 目录条目 - 不适用于 OU=Users

javascript - 字典多项选择

javascript - onsubmit 和确认总是处理表单?

c# - 在 C# 中,是否可以像在 VB.NET 中那样使用具有不同名称的成员来实现接口(interface)成员?

javascript - 堆栈中视频元素的加载之间存在明显的延迟

jquery - 如何在 jQuery Datatable 中的每个组之后添加分页?