次のコードに問題があります。
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がその仕事をしていないのはなぜですか?これは私にはうまくいくはずです...
何か案は?
助けてくれてありがとう