1

次のコードに問題があります。

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」を追加します(名前付きアンカーの場合、ページ上の読み込み位置は、エラーメッセージまたは表示する結果)、それ以外の場合は、フォームのアクション属性を変更して(JavaScriptによって)#searchListを追加する必要があります)。

JavaScriptとC#が一緒にうまく機能しない理由はありますか?私が得ているエラーは偶然です(最初は機能せず、その後はまったく機能しないなど)、とにかく以下のコードに基づいて、それでも(#top)に移動することはありませんが、いくつかのことを試してみるとこの正確なコーディングの前に(私はそれらが何であったかを正確に覚えていません)、エラーが発生した場合、(初めてではありませんが)時々トップに移動しました。

jQueryがその仕事をしていないのはなぜですか?これは私にはうまくいくはずです...

何か案は?

助けてくれてありがとう

4

1 に答える 1

0

まあ、私はそれを理解していると思います、そして私はそれが理にかなっていると思います:

値は必要に応じて変更されますが、アクション(フォーム[またはむしろどこで、私が見る方法]が投稿されたデータを処理する方法)は、現在の結果に関係なく、どのように移動するかにすでに設定されています探す。要するに:それは一歩遅れています。クリックして検索し、エラーメッセージが生成されると、意図したとおりにアクションが書き換えられますが、もちろん、前回の送信ですでに決定されている現在の検索ではなく、次の検索でのみ有効になります。

私のコードの何が問題になっていますか?構文的には何もありません。方法論(論理)は誤りです。

于 2012-10-18T21:13:42.070 に答える