Fehler CS1513: } erwartet asp.net mvc 4
Ich habe eine view, die ist sehr einfach. Es enthält einige C# - code.
@{
ViewBag.Title = "Community";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div id="req1">
<form>
<input id="txt1" type="text" name="txt1" />
</form>
</div>
<div id="btn1">Send</div>
<div id="res1"></div>
@{
public string GetPassage(string strSearch)
{
using (var c = new System.Net.WebClient())
{
string url = "http://www.esvapi.org/v2/rest/passageQuery?key=IP&passage=' + strSearch + '&options=include-passage-references=true";
return c.DownloadString(Server.UrlDecode(url));
}
}
}
Ich weiß nicht, was falsch ist. Die Fehlermeldung ist:
Source Error:
Line 117:EndContext("~/Views/Home/Community.cshtml", 236, 9, true);
Update:
Wenn zog ich den code auf den controller -.
public ActionResult Community()
{
ViewBag.Message = "";
return View();
}
public string GetPassage(string strSearch)
{
using (var c = new System.Net.WebClient())
{
string url = "http://www.esvapi.org/v2/rest/passageQuery?key=IP&passage=" + strSearch + "&options=include-passage-references=true";
return c.DownloadString(Server.UrlDecode(url));
}
}
Und ich möchte einen ajax-Aufruf basiert auf das Beispiel. Wie ist der code in javascript?
- Das sind zwei verschiedene Dateien.
- Code gehört nicht in eine Sicht, sollte im controller oder an anderer Stelle wirklich.
- Vielleicht ist es im Zusammenhang zu der Zeile, wo Sie den Aufbau der url. Sie sollten mit doppelten Anführungszeichen statt Anführungszeichen.
' + strSearch + '
sollte" + strSearch + "
. - Nein. Auch Entferne ich diese Zeile, es ist immer noch falsch. Ich denke, es könnte in einem controller.
- Vielleicht nicht verwandt, aber es sieht immer noch aus wie ein bug zu mir.
- Sie haben Recht, ich korrigierte er.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicht nicht der richtige Ort, um eine Methode deklariert. In der Tat, alle code, den Sie schreiben in einer Ansicht zwischen
@{
und}
wird innerhalb der gleichen Methode (nicht ganz richtig, macht aber den Punkt). Offensichtlich Deklaration einer Methode innerhalb einer anderen Methode unmöglich ist, in C# anzeigen-Motor einfach nicht genug Mittel, um es zu übersetzen, um Sie buchstäblich.Allerdings, wenn Sie müssen, einige utility-Methode auf einen Blick - Sie können erstellen Sie einen Delegaten, und rufen Sie es später:
GetPassage
gibt ein einfacher string, die nächstenActionResult
Methode istContent
. Allerdings bezweifle ich die Idee des Drehens diese Methode in Aktion-Methode. Es ist schwer zu beraten, was getan werden sollte, mit dieser Methode, ohne zu wissen, Szenarien der Nutzung.Call An Action Method That Returns A String But Takes Parameters