If you try to update field of type SPUrlField in SPListItem, you may encounter “Invalid URL value. A URL field contains invalid data. Please check the value and try again” error. This error can occur due to several reasons. I found a good description in a Microsoft SharePoint forums by Somak Bhattacharyya . I found it quite useful and hope it will help you to fix this issue:
- The URL that you are creating doesn’t exceed 255 characters. This is because the Hyperlink type column in SharePoint does not accept more than 255 characters as an URL. This is what had happened personally to me . Had a pretty tough time figuring it out myself.
- Check that your URL is well-formed. To check this, try to browse the URL, that you are generating, in IE and see whether it points to your desired target. Just Copy paste the URL generated to the Address bar of IE and press enter. Ideally this should open the page you are trying to link to. If it is not then you instantly know that what you are generating is wrong. Correct it!
NB: You may get the URL generated runtime from inside your Code by logging it into the Event Log or just by redirecting it to a text file or invoking IE by passing the URL generated as a parameter. - If you are directly assigning the value to the column like:
Item[“”] = “,”, then check that you are not missing the after the comma. - The best possible way to do it I feel is in this way:
SPFieldUrlValue yourURL = new SPFieldUrlValue(); yourURL.Url = ""; // For example: www.microsoft.com. yourURL.Url = yourURL.Url.Replace(" ", "%20"); // This is however optional. yourURL.Description = ""; // eg:Microsoft.
PLZ SOLVE THIS PROBLEM
Seems that Sharepoint also restricts the URL to just those that start wtih “http”. We use Subversion source control and we use URLs like
svn:///foldername
This URL actually WORKS when you click the “(Click here to test)” link in the item edit screen. But when you click OK to save the item, you get the “Invalid URL” error message.
Sorry, that last comment had weird formatting in the example URL because I was using angle brackets. What I meant was that URLs like this one work, but get rejected by Sharepoint:
svn://servername/foldername
This is exact solution I was looking for. thanks.