Мне дали этот фрагмент C #, который отлично работает в Visual Studio 2010:
using System;использование System.Web.UI.WebControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void RequestLanguageChange_Click(object sender, EventArgs e)
{
LinkButton senderLink = (LinkButton)sender;
Response.Redirect(Request.RawUrl.ApplyCultureToUrl(senderLink.CommandArgument));
}
}
И каждый онлайн-конвертер (и SharpDevelop) переводит его в VB:
Imports System
Imports System.Web.UI.WebControls
Public Partial Class MasterPage
Inherits System.Web.UI.MasterPage
Protected Sub Page_Load(sender As Object, e As EventArgs)
End Sub
Protected Sub RequestLanguageChange_Click(sender As Object, e As EventArgs)
Dim senderLink As LinkButton = DirectCast(sender, LinkButton)
Response.Redirect(Request.RawUrl.ApplyCultureToUrl(senderLink.CommandArgument))
End Sub
End Class
VS также делает то же самое с этим:
Public NotInheritable Class Localization
Private Sub New()
End Sub
<System.Runtime.CompilerServices.Extension()> _
Public Shared Function ApplyCultureToUrl(rawUrl As String, culture As String) As String
Dim modifiedUrl As String
Говоря System.Runtime.CompilerServices.Extension можно запускать только в модулях.
Проблема:
В Visual Studio 2010 Request.RawUrl.ApplyCultureToUrl подчеркнут синим цветом и не предлагает решения.Он просто говорит ApplyCultureToUrl не является членом 'String' .Это единственное, что мешает моему решению работать!
Я исследовал на MSDN, и он говорит, что ошибка означает, что он должен быть окружен модулем, но не быть кодером, я понятия не имею, как исправитьЭто.Фрагмент должен помочь моей строке запроса? Lang = en-GB показать на моем многоязычном веб-сайте.Любая помощь будет искренне признательна!
Обновление: у меня работает приложение ApplyCulturetoUrl, просто нажимая много значков в Visual Studio, и оно выдает это:
Partial Public Class MasterPage
Inherits System.Web.UI.MasterPage
Protected Sub Page_Load(sender As Object, e As EventArgs)
End Sub
Protected Sub RequestLanguageChange_Click(sender As Object, e As EventArgs)
Dim senderLink As LinkButton = DirectCast(sender, LinkButton)
Response.Redirect(ApplyCultureToUrl(Request.RawUrl, senderLink.CommandArgument))
End Sub
Private Sub body()
Throw New NotImplementedException
End Sub
Private Function ApplyCultureToUrl(p1 As String, p2 As String) As String
Throw New NotImplementedException
End Function
End Class
И это не дает мне ошибок, хотя я не знаю, правильно ли это ... хе-хе .... Теперь, единственная другая часть кода, которая дает мне ошибку, находится в localization.vb, классе, и этокак это:
Public NotInheritable Class Localization
Private Sub New()
End Sub
<System.Runtime.CompilerServices.Extension()> _
Public Shared Function ApplyCultureToUrl(rawUrl As String, culture As String) As String
Dim modifiedUrl As String
И System.Runtime.CompilerServices.Extension () подчеркнут волнистым синим цветом и говорит, что методы расширения могут быть определены только в модулях.Я использую все ваши предложения!Спасибо, что придерживаетесь этого!