We have a custom command in a UI for ASP.NET Core FileManager control that states the icon as a simple textual name which worked fine in 2023.1.117
items.Add("").Type("button").Name("refresh").Icon("reload").Text("Refresh").Click("onRefresh").HtmlAttributes(new { style = "margin-left: 5px;" });
Everything else within the control works, however the list view and icon view switching buttons do not. Upon clicking the list or icon view buttons as below, the error message at the bottom appears, and I have located no reason why this is the case.
kendo.all.js:313050 Uncaught Error: There is no ViewComponent registered!
at init.view (kendo.all.js:313050:21)
at init.exec (kendo.all.js:313050:21)
at init.executeCommand (kendo.all.js:313050:21)
at init._toolbarClick (kendo.all.js:313050:21)
at init.trigger (kendo.all.js:313050:21)
at init._onSelect (kendo.all.js:313050:21)
at init.trigger (kendo.all.js:313050:21)
at init._select (kendo.all.js:313050:21)
at init.trigger (kendo.all.js:313050:21)
at init._click (kendo.all.js:313050:21)
IHostingEnvironment used in FileManager is long obsoleted.
Any plan to upgrade to IWebHostEnvironment soon?
thank you.
So, basically I do not want clients to have the options to delete or rename files which they have by default when you use FileManager through tag helper. All I need is clients to be able to view available files and download them. Is there any alternative to FileManager to achieve this feature? I greatly appreciate any help or directions. Thank you.
Edit: Using <Context-Menu> tag helper inside the filemanager component accomplished what I was looking for.
Request to impalement this common feature for FileManager
1) Back and Forward feature / button
2) Cut, Copy and Paste feature /Button
I have a web application that I am adding additional functions to. The File Manager has just about everything I need (except to hide create folders). But users have to have the ability to download files. (I kind of don't get how you can have a file manager without the ability to download files.)
Users will upload some CSV files, start a process & at end of process download log files created by the process.
I see an example of how to extend File Manger but it just doesn't seem to fit the razor page model. Can anyone point me towards some good examples of how to add that in?
I am using the FileManager in ASP.net CORE 5 using the Tag Helpers. I created a partial view for the FileManager and created a controller to handle the Read, Upload, Destroy, Create.... Currently the read and upload functions work as expected, but when I try to delete a file I Am getting 415 Error using this Tag:
<destroy url="/FileManagerData/Destroy" type="POST" />
Here is the response:
{"type":"https://tools.ietf.org/html/rfc7231#section-6.5.13","title":"Unsupported Media Type","status":415,"traceId":"00-cd48a67e3165574bb55f025789ec2570-d50282d662ca804c-00"}
After some research the it appears the 415 and Unsupported Media Type is caused by not passing in the Content Type, so I changed the Tag to this:
<destroy url="/FileManagerData/Destroy" type="POST" content-type="multipart/form-data" />
This produced a 400 error with a response of:
{"errors":{"":["Failed to read the request form. Missing content-type boundary."]},"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"traceId":"00-c95edcb44f53ca4aa80654e8ac3f4d6b-80784c169952f14a-00"}
According to you docs the content-type is application/x-www-form-urlencoded which gives me the 415 error.
Here is the Destroy Method from the Controller:
[HttpPost("Destroy")]
public virtual ActionResult Destroy(FileManagerEntry entry)
{
var path = NormalizePath(entry.Path);
if (!string.IsNullOrEmpty(path))
{
if (entry.IsDirectory)
{
DeleteDirectory(path);
}
else
{
DeleteFile(path);
}
return new JsonResult(new object[0]);
}
throw new Exception("File Not Found");
}
What am I missing here to get this to work?
[UPDATE]
I Change the Destroy Method in the controller to this:
public virtual ActionResult Destroy([FromForm] FileManagerEntry entry)
Added [FromForm] Which now produces the following validation errors:
{"errors":{"Created":["The value 'Mon Aug 16 2021 10:06:38 GMT-0500 (Colombia Standard Time)' is not valid for Created."],"Modified":["The value 'Mon Aug 16 2021 10:06:38 GMT-0500 (Colombia Standard Time)' is not valid for Modified."],"CreatedUtc":["The value 'Mon Aug 16 2021 10:06:38 GMT-0500 (Colombia Standard Time)' is not valid for CreatedUtc."],"ModifiedUtc":["The value 'Mon Aug 16 2021 10:06:38 GMT-0500 (Colombia Standard Time)' is not valid for ModifiedUtc."]},"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"traceId":"00-5bc6f05eed3360458a9c5f37a37c8f11-27e6c765b081e642-00"}
[UPDATE 1]
I Created my own Model to replace the FileManagerEntry but set all the DateTime Fields to Strings:
public class FileDataJTE
{
public string Name { get; set; }
public string Path { get; set; }
public string Extension { get; set; }
public bool IsDirectory { get; set; }
public bool HasDirectories { get; set; }
public string Created { get; set; }
public string CreatedUtc { get; set; }
public string Modified { get; set; }
public string ModifiedUtc { get; set; }
}
Then I Had to pass that in to the Method and convert and string ie Create, back to DateTime:
[HttpPost("Destroy")]
Why does this not work with the FileManagerEntry on a Controller?
Any ideas on this or am I even on the right track to get this working?
Thanks
--R